如何以编程方式使用Windows文件资源管理器执行搜索?

时间:2015-05-13 17:33:51

标签: c# wpf explorer file-search

我们的网络中有一个文件夹,我们想在其中搜索,包括我们程序中的子文件夹。我们想要返回一个名称包含“String1”或“String2”或“StringN”的文件列表。我们希望以编程方式打开资源管理器窗口,并使用本机Windows文件资源管理器查看与搜索结果匹配的所有文件。

这可能吗?怎么样?

谢谢!

3 个答案:

答案 0 :(得分:4)

您可以使用.ms-search file format表达已保存的搜索。如果您打开此文件格式,它将启动应用了搜索条件的文件资源管理器。

如果您已经应用了搜索打开了文件资源管理器窗口,则可以使用'保存搜索'功能区上的按钮。

答案 1 :(得分:0)

由于Windows资源管理器随着操作系统的每个版本而变化...我建议通过.NET进行搜索并在表单上的网格上显示结果。

使用System.IO命名空间。

System.IO.Directory.GetFiles(folderName)将获取文件...

您需要一个递归函数来首先枚举所有文件,然后递归每个子目录。

答案 2 :(得分:0)

以下是一些代码,用于创建已保存的搜索xml文件(file.search-ms),以便按名称搜索指定的路径和搜索字符串:

override func viewDidLoad() {
   super.viewDidLoad()
  self.messageTextView.maxHeight = 3 * 
       (self.messageTextViewHieghtConstarint.constant)
 }

https://github.com/nvuono/ExplorerQuickSearch处的示例代码仅使用文件扩展名搜索,但显示如何在临时文件夹中创建已保存的搜索并执行它。

更好的解决方案是为搜索生成一个URL并将其提供给 Internet 资源管理器,该资源生成一个显示搜索结果的Windows /文件资源管理器窗口。执行此操作的一些代码显示在

Create a saved search (.search-ms) from terms in Explorer search box