首页 > 解决方案 > 如何使用自定义搜索结果启动 Windows 资源管理器

问题描述

我正在编写一个 Windows 应用程序,它收集(可能数百个)文件名,所有这些文件都位于一个特定文件夹(用户可以选择)的子文件夹中。该列表只是文件夹中所有文件的子集。

我不想实现提供各种排序和选择可能性的用户界面,因为 Windows 资源管理器在这方面总是要好得多。

是否有一个 API 允许我从我的应用程序启动 Windows 资源管理器,以便它显示我的文件列表,就好像它是搜索操作的结果一样?

标签: winapisearchexplorer

解决方案


Explorer 保存的搜索格式 (.search-ms)记录在 MSDN 上。唯一的缺点是它会在您打开它时执行实际搜索,它不包含找到的文件的路径列表。

如果这是不可接受的,那么您将不得不深入了解IShellFolder和朋友。

如果托管您自己的窗口是可以接受的,那么IExplorerBrowser您将获得 99% 的成功。调用IExplorerBrowser::FillFromObject以使用自定义文件列表填充视图或直接操作视图。示例代码在这里

如果您必须在资源管理器中显示列表,那么我认为您将不得不硬着头皮实施命名空间扩展


推荐阅读