用于在 Windows 文件夹中搜索确切文件名的 C# 代码
C# code to search exact file name in Windows folder
我的 Windows 文件夹中有一组文件。我只知道它们的根路径,不知道它们的确切路径。见下文:
文件列表:
Linq.doc
OOPs.doc
根路径为:
E:\RootFolder......\Linq.doc
E:\RootFolder......\OOPs.doc
我需要从我的 .Net 代码中获取它们的完整路径。所以返回的输出应该是这样的:
输出要求:
E:\RootFolder\SubFolder1\Linq.doc
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 更有效。这解决了我的问题。
我的 Windows 文件夹中有一组文件。我只知道它们的根路径,不知道它们的确切路径。见下文:
文件列表:
Linq.doc
OOPs.doc
根路径为:
E:\RootFolder......\Linq.doc
E:\RootFolder......\OOPs.doc
我需要从我的 .Net 代码中获取它们的完整路径。所以返回的输出应该是这样的:
输出要求:
E:\RootFolder\SubFolder1\Linq.doc
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 更有效。这解决了我的问题。