Windows 中的 Windows Shell 库

本主题概述了适用于 Windows 7 及更高版本的库的介绍。 库是 Windows Shell 的一项功能。 若要访问 Windows Shell 功能(如库),Windows 搜索应用程序的第三方开发人员必须先实现 Shell 数据存储。 有关详细信息,请参阅 实现基本文件夹对象接口

本主题的组织方式如下:

在 Windows 7 及更高版本中,库是用户数据的默认存储库。 用户可以按照在文件夹中浏览文件的方式浏览文件,也可以查看按日期、类型和作者等属性排列的文件。 与文件夹不同,库实际上并不存储项目,而是同时显示存储在多个文件夹中的文件。 库为其聚合内容的用户提供单一接入点和丰富的视图透视。 例如,如果用户除 “我的音乐” 文件夹外,外部驱动器上的文件夹中还有音乐文件,则他们可以通过音乐库立即访问所有音乐文件。

用户数据入口点

默认库 (如“我的文档”、“我的图片”等) 等效于“已知文件夹”。 默认库向用户提供熟悉的入口点,但由于库内容不仅限于已知文件夹内容库,因此用户可以更自由地确定应存储文档和媒体的位置。 库通过 Shell 命名空间 (Shell 数据源) 公开。 应用程序可以通过启用库感知和浏览功能,为用户提供对其数据的相同熟悉入口点。

文件夹集合

库是用户定义的内容集合。 Windows 搜索索引支持的文件夹(如果这些文件夹包含在库中)。 这将在库中启用即时搜索和基于属性的堆栈排列视图。

库中支持的文件夹

要使文件夹在库中受支持,它们必须在本地计算机上可编制索引,并在远程 Windows 计算机上编制索引,或者在具有 Windows 搜索索引的文件的服务器上编制索引。

用户在 Windows 库管理对话框中阻止添加不支持的文件夹。 如果使用 IShellLibrary API 将未编制索引的远程文件夹添加到库中,则库用户体验将还原到库安全模式。 在 安全模式下 ,基于属性的堆栈排列视图、筛选器建议和 “开始”菜单 搜索支持等功能将从受影响的库中删除。

下表列出了使用 Windows 资源管理器库管理对话框的库中包含的文件夹,以及 安全模式下不支持的文件夹:

支持的文件夹 不支持的文件夹
固定和外部 NTFS 和 FAT32 硬盘驱动器 可移动驱动器 (,例如 thumbdrive 和 SD 卡)
由 Windows 搜索 ((例如部门服务器)以及运行 Windows 10 和 Windows 7 家庭版的计算机上索引的共享) 可移动媒体 (,例如 CD 和 DVD)
脱机可用的共享 (,例如 重定向我的文档客户端缓存) 脱机或远程索引 ((例如 NAS 驱动器)的网络共享)
不适用 其他数据源 (,例如 Microsoft SharePoint、Microsoft Exchange、Microsoft OneDrive 等)

Storage-Backed

库是存储文件夹的集合。 用户可以直接将文件保存并复制到库中,因为每个库都有一个默认的保存位置,以便将这些文件发送到其中。 对于默认库,这是包含在库 ((例如 “我的文档 ”) )中的用户已知文件夹,或添加到自定义库的第一个文件夹。 这是当用户将文件拖放到库或使用通用文件对话框保存到库时文件所在的文件夹。 用户可以随时更改库的默认保存位置,但如果她删除了默认保存位置,则将选择库中的下一个文件夹作为新的保存位置。 用户还可以保存到他们有权访问的任何文件夹,该文件夹已包含在库中。

非文件系统 Shell 容器

库可以包含文件系统 Shell 容器(如计算机控制面板),但包含文件系统项。 可以使用以前操作系统中文件系统文件和文件夹的 API 枚举和访问库文件夹和内容。 如果应用程序严重依赖于特定于文件系统的 API,则可以使用 IShellLibrary API 获取库中文件夹和文件的文件系统路径。 在大多数情况下,建议使用 Shell 编程模型来支持多个 Windows 版本和项灵活性。 有关详细信息,请参阅 导航 Shell 命名空间

库说明

库说明以 XML 文件的形式保存在磁盘上%appdata%Microsoft\Windows\Libraries 文件夹 (,并可能作为 FOLDERID_Libraries。 有关 FOLDERID_Libraries的详细信息,请参阅 KNOWNFOLDERID

库说明文件是文件扩展名为 .library-ms 的 XML 文件。 应用程序绝不应访问或编辑这些文件。 保存到库说明文件的文件夹路径文本并不总是最新的。 库文件夹以序列化的二进制 Shell 链接 格式保留在库说明文件中。 有关库和库说明架构的详细信息,请参阅 库说明架构。 有关联合搜索连接器和搜索连接器说明架构的详细信息,请参阅 搜索连接器说明架构

[备注]
应用程序应始终使用 Shell 编程模型或 IShellLibrary API 来使用和操作库内容,切勿尝试手动访问或编辑库说明文件。

Windows 7 搜索

Windows 7 搜索的新增功能

为 Windows 7 中的优先级和行集事件编制索引