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,如需转载请自行联系原作者

相关文章
|
8月前
|
Ubuntu API C++
C++标准库、Windows API及Ubuntu API的综合应用
总之,C++标准库、Windows API和Ubuntu API的综合应用是一项挑战性较大的任务,需要开发者具备跨平台编程的深入知识和丰富经验。通过合理的架构设计和有效的工具选择,可以在不同的操作系统平台上高效地开发和部署应用程序。
316 11
|
存储 安全 Ubuntu
从Linux到Windows:阿里云服务器系统镜像适配场景与选择参考
阿里云为用户提供了丰富多样的服务器操作系统选择,以满足不同场景下的应用需求。目前,云服务器的操作系统镜像主要分为公共镜像、自定义镜像、共享镜像、镜像市场和社区镜像五大类。以下是对这些镜像类型的详细介绍及选择云服务器系统时需要考虑的因素,以供参考。
|
编译器 C语言 C++
Windows库程序
Windows库程序
|
人工智能 数据处理 C#
AI Dev Gallery:微软开源 Windows AI 模型本地运行工具包和示例库,助理开发者快速集成 AI 功能
微软推出的AI Dev Gallery,为Windows开发者提供开源AI工具包和示例库,支持本地运行AI模型,提升开发效率。
1078 13
|
Linux C# iOS开发
开源GTKSystem.Windows.Forms框架让C# Winform支持跨平台运行
开源GTKSystem.Windows.Forms框架让C# Winform支持跨平台运行
468 12
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
1220 8
|
SQL 开发框架 安全
并发集合与任务并行库:C#中的高效编程实践
在现代软件开发中,多核处理器普及使多线程编程成为提升性能的关键。然而,传统同步模型在高并发下易引发死锁等问题。为此,.NET Framework引入了任务并行库(TPL)和并发集合,简化并发编程并增强代码可维护性。并发集合允许多线程安全访问,如`ConcurrentQueue&lt;T&gt;`和`ConcurrentDictionary&lt;TKey, TValue&gt;`,有效避免数据不一致。TPL则通过`Task`类实现异步操作,提高开发效率。正确使用这些工具可显著提升程序性能,但也需注意任务取消和异常处理等常见问题。
306 1
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。