用于在 Windows 文件夹中搜索确切文件名的 C# 代码

C# code to search exact file name in Windows folder

我的 Windows 文件夹中有一组文件。我只知道它们的根路径,不知道它们的确切路径。见下文:

文件列表:

  1. Linq.doc

  2. OOPs.doc

根路径为:

  1. E:\RootFolder......\Linq.doc

  2. E:\RootFolder......\OOPs.doc

我需要从我的 .Net 代码中获取它们的完整路径。所以返回的输出应该是这样的:

输出要求:

  1. E:\RootFolder\SubFolder1\Linq.doc

  2. E:\RootFolder\SubFolder1\SubFolder9\OOPs.doc

我尝试使用以下代码,但返回的结果不正确:

Directory.SetCurrentDirectory(@"E:\RootFolder");
var Filepath= Directory.GetDirectories("Linq.doc","*.doc*",SearchOption.AllDirectories);

请告知什么是更好的解决方案?

您可以使用 Directory.GetFiles 而不是 Directory.GetDirectories

System.IO.Directory.GetFiles(@"E:\RootFolder", "Linq.doc", SearchOption.AllDirectories);

查看文档 here

我找到了使用带有 "Where" 子句的 EnumerateFiles 的解决方案。请看下面的代码:

var results2 = Directory.EnumerateFiles(@"E:\RootFolder", "*.doc", SearchOption.AllDirectories).Where(p => p.Contains(sFile2)); 

使用 EnumerateFiles 比使用 GetFiles 更有效。这解决了我的问题。