Windows 7库(Library):C#快速参考

简介:

如果你对windows7库的概念不了解,请先看这篇介绍:Windows 7新功能:库(Library)

以下是一些常见的Windows 7库功能的一个快速参考,使用了Windows API Code Pack

这篇文章中的代码来自Alon和Sela工作小组的成员。

每个Windows 7库用一个XML文件表示,扩展名为.library-ms。

通用库文件通常存储在:C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Libraries\。

例如,我们现在使用图片库,如以下代码:

1  libraryName  =  Pictures 
2  locationPath  =  C:\Users\ < username > \AppData\Roaming\Microsoft\Windows\Libraries\

注意:您可以在任何地方创建库文件,不一定是在上述文件夹中。

功能:

创建一个新库:

1  ShellLibrary shellLibrary  =  
2       new  ShellLibrary(libraryName, locationPath, overwriteExisting);

添加文件夹到现有库:

1  using  (ShellLibrary shellLibrary  =
2      ShellLibrary.Load(libraryName, folderPath, isReadOnly))
3  {
4      shellLibrary.Add(folderToAdd);
5  }

从库中删除文件夹:

1  using  (ShellLibrary shellLibrary  =
2      ShellLibrary.Load(libraryName, folderPath, isReadOnly))
3  {
4      shellLibrary.Remove(folderToRemove);
5  }

枚举库文件夹:

复制代码
1  using  (ShellLibrary shellLibrary  =  
2      ShellLibrary.Load(libraryName, folderPath, isReadOnly))
3  {
4       foreach  (ShellFileSystemFolder folder  in  shellLibrary)
5      {
6          Debug.WriteLine(folder.Path);
7      }
8  }
复制代码

更改默认保存位置: 

1  using  (ShellLibrary shellLibrary  =  
2      ShellLibrary.Load(libraryName, folderPath, isReadOnly))
3  {
4      shellLibrary.DefaultSaveFolder  =  newSaveLocation;
5  }

更改库图标:

1  using  (ShellLibrary shellLibrary  =  
2      ShellLibrary.Load(libraryName, folderPath, isReadOnly))
3  {
4      shellLibrary.IconResourceId  =   new  IconReference(moduleName, resourceId);
5  }

锁住库浏览导航窗格:

1  using  (ShellLibrary shellLibrary  =  
2      ShellLibrary.Load(libraryName, folderPath, isReadOnly))
3  {
4      shellLibrary.IsPinnedToNavigationPane  =   true ;
5  }

设置库的类型:

复制代码
 1  using  (ShellLibrary shellLibrary  =  
 2      ShellLibrary.Load(libraryName, folderPath, isReadOnly))
 3  {
 4      shellLibrary.LibraryType  =  libraryType;
 5      
 6       //  libraryType can be:
 7       //   LibraryFolderType.Generic
 8       //   LibraryFolderType.Documents
 9       //   LibraryFolderType.Music
10       //   LibraryFolderType.Pictures
11       //   LibraryFolderType.Videos
12  }
复制代码

打开库管理界面:

1  ShellLibrary.ShowManageLibraryUI(
2      libraryName, folderPath, hOwnerWnd, title, instruction, allowNonIndexableLocations);

删除库:

1  string  FileExtension  =   " .library-ms " ;
2 
3  File.Delete(Path.Combine(folderPath,libraryName  +  FileExtension));

获取库的更改通知:

复制代码
 1  string  FileExtension  =   " .library-ms " ;
 2 
 3  FileSystemWatcher libraryWatcher  =   new  FileSystemWatcher(folderPath);
 4  libraryWatcher.NotifyFilter  =  NotifyFilters.LastWrite;
 5  libraryWatcher.Filter  =  libraryName  +  FileExtension;
 6  libraryWatcher.IncludeSubdirectories  =   false ;
 7 
 8  libraryWatcher.Changed  +=  (s, e)  =>
 9  {
10       // cross thread call
11       this .Dispatcher.Invoke( new  Action(()  =>
12          {
13               using  (ShellLibrary shellLibrary  =  
14                  ShellLibrary.Load(libraryName, folderPath, isReadOnly))
15              {
16                   //  get changed information
17                  ...
18              }
19          }));
20  };
21  libraryWatcher.EnableRaisingEvents  =   true ;
复制代码






本文转自麒麟博客园博客,原文链接:http://www.cnblogs.com/zhuqil/archive/2010/03/21/windows-7-libraries-c-quick-reference.html,如需转载请自行联系原作者

相关文章
|
6月前
|
关系型数据库 MySQL 开发工具
windows编译poco c++库
windows编译poco c++库
|
2月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
1月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
60 8
|
6月前
|
安全 Linux 网络安全
【Windows】搭建Emby媒体库服务器,实现无公网IP远程访问
【Windows】搭建Emby媒体库服务器,实现无公网IP远程访问
543 0
|
2月前
|
SQL 开发框架 安全
并发集合与任务并行库:C#中的高效编程实践
在现代软件开发中,多核处理器普及使多线程编程成为提升性能的关键。然而,传统同步模型在高并发下易引发死锁等问题。为此,.NET Framework引入了任务并行库(TPL)和并发集合,简化并发编程并增强代码可维护性。并发集合允许多线程安全访问,如`ConcurrentQueue&lt;T&gt;`和`ConcurrentDictionary&lt;TKey, TValue&gt;`,有效避免数据不一致。TPL则通过`Task`类实现异步操作,提高开发效率。正确使用这些工具可显著提升程序性能,但也需注意任务取消和异常处理等常见问题。
48 1
|
3月前
|
C# 数据库
C# 使用 DbDataReader 来访问数据库
C# 使用 DbDataReader 来访问数据库
68 2
|
3月前
|
XML 监控 C#
Windows平台C#版RTSP转RTMP直播推送定制版
前几年我们发布了C++版的多路RTMP/RTSP转RTMP转发官方定制版。在秉承低延迟、灵活稳定、低资源占用的前提下,客户无需关注开发细节,只需图形化配置转发等各类参数,实现产品快速上线目的。如监控类摄像机、NVR等,通过厂商说明或Onvif工具,获取拉流的RTSP地址,图形化配置,完成拉流转发等操作,轻松实现标准RTMP服务器对接。
|
6月前
|
编译器 C语言 C++
|
3月前
|
开发者 iOS开发 C#
Uno Platform 入门超详细指南:从零开始教你打造兼容 Web、Windows、iOS 和 Android 的跨平台应用,轻松掌握 XAML 与 C# 开发技巧,快速上手示例代码助你迈出第一步
【8月更文挑战第31天】Uno Platform 是一个基于 Microsoft .NET 的开源框架,支持使用 C# 和 XAML 构建跨平台应用,适用于 Web(WebAssembly)、Windows、Linux、macOS、iOS 和 Android。它允许开发者共享几乎全部的业务逻辑和 UI 代码,同时保持原生性能。选择 Uno Platform 可以统一开发体验,减少代码重复,降低开发成本。安装时需先配置好 Visual Studio 或 Visual Studio for Mac,并通过 NuGet 或官网下载工具包。
317 0
|
3月前
|
数据库 C#
C# 使用SqlDataAdapter和DataSet来访问数据库
C# 使用SqlDataAdapter和DataSet来访问数据库
30 0