关于库

本主题介绍什么是库,以及它们如何使用户和开发人员受益。

库是用户定义的文件夹集合。 库跟踪每个文件夹的物理存储位置,从而减轻用户和软件执行该任务。 用户可以将库中的相关文件夹组合在一起,即使这些文件夹存储在不同的硬盘驱动器或不同的计算机上也是如此。

在库中,文件夹和文件以单个集合的形式向用户显示,并且使用 Shell 库 API,库的内容也可以显示在程序的单个位置。

在库中,内容(如用户的文档、照片、视频或音乐)可以按用户需要进行排序和显示,而不是简单地按文件系统要求的方式进行排序和显示。 例如,用户可以使用库中项的属性来组织库的内容,这样即使相关项存储在不同的文件夹中,相关项也会一起排序。

库用户界面的屏幕截图

本主题内容:

库权益

本部分从最终用户和程序开发人员的角度介绍库的一些优势。

用户权益

向程序添加库支持可为用户提供以下优势:

  • 库在 Windows 7 中提供一致的用户界面

    通用文件对话框支持库,并提供与 Windows 7 中的 Windows 资源管理器相同的用户体验。 在 Windows 7 中使用程序时,程序中的支持库将有助于为用户提供更无缝的交互。

  • 用户决定存储内容的位置

    库使用户能够控制其内容的存储位置。 同时,库为不希望在其计算机中管理该级别详细信息的用户提供合理的默认值。 用户决定要对其内容的存储位置和存储方式进行多少或少的控制,并且无论哪种方式,库都正常工作。

开发人员权益

可以在程序中使用库来提供更灵活、更方便的用户界面,而无需添加大量复杂的程序代码。 添加库支持的一些优点包括:

  • 库支持库和文件系统访问

    使用 Shell 库 API,程序可以为用户提供库支持,同时降低文件和文件夹管理代码的复杂性。 如果程序已使用文件系统 API,则可以根据需要保留尽可能多的现有代码,并通过从 Shell 库 API 获取必要的文件系统信息来向用户提供库支持。

  • 更简单的更改通知

    当受监视的文件夹或库的内容发生更改时,文件系统和 Shell API 都可以通知程序。 但是,使用 Shell API,可以使用单个通知监视库中的所有文件夹,即使库中的文件夹可能存储在不同的驱动器甚至不同的计算机上。

  • 库使用文件属性

    程序可以使用文件属性来控制在使用通用文件对话框的打开和保存操作期间显示哪些文件。 程序还可以使用 IPropertyStore 接口访问文件属性。 还可以配置通用文件对话框,以允许用户更新与其内容关联的属性。

  • 程序可以创建专用库

    当现有用户库不满足程序的需求时(例如,如果程序创建了一种新型的用户内容),则可以创建新库。 可以使用唯一图标配置新库,该图标表示其内容,并使库在 Windows 资源管理器中易于识别。

管理库中的文件夹

用户可以通过在库中添加、移动或删除文件夹来组织其库。 但是,并非所有文件夹都支持库可以提供的所有功能。 许多库功能需要快速访问文件夹的不同属性及其内容,这些属性只能通过 Windows 搜索使用。 若要提供完整的库功能,文件夹必须能够通过 Windows 搜索编制索引。

库不允许用户添加不提供完整库功能的文件夹。 但是, Shell 库 API 可以添加此类文件夹。 如果库包含不支持完整库功能的文件夹,则库将在安全模式下运行,并提供有限的功能。 下表描述了支持完整库功能的文件夹和不支持完整库功能的文件夹。

支持完整库功能的文件夹类型 不支持完整库功能的文件夹类型
固定和外部 NTFS 和 FAT32 硬盘驱动器。 可移动驱动器,如 USB 闪存驱动器或安全数字 (SD) 内存卡。
由 Windows 搜索编制索引的文件共享,例如部门服务器、Windows 7 或 Windows Vista 家庭电脑。 可移动媒体,如 CD-ROM 或 DVD 媒体。
脱机可用的文件共享,例如重定向的 “我的文档” 文件夹或Client-Side缓存。 既不能脱机使用,也不能远程编制索引的网络共享,例如 NAS 驱动器。
其他数据源,例如 Microsoft SharePoint、Microsoft Exchange 和 Microsoft OneDrive。

 

下图显示了在安全模式下有限显示库内容。

当库处于安全模式时打开对话框

关于库

IShellLibrary

Shell 链接

已知文件夹

库说明架构