我不知道我怎么会使用C#寻找所有可能的目录中的特定文件(例如cheese.exe)? 然后存储的路径,它发现它在目录中?
Answer 1:
这段代码检索机器上的所有逻辑驱动器的列表,然后搜索硬盘中的所有文件夹匹配文件名“Cheese.exe”的文件。 一旦循环完成,列表中的“文件”包含
var files = new List<string>();
//@Stan R. suggested an improvement to handle floppy drives...
//foreach (DriveInfo d in DriveInfo.GetDrives())
foreach (DriveInfo d in DriveInfo.GetDrives().Where(x => x.IsReady == true))
{
files.AddRange(Directory.GetFiles(d.RootDirectory.FullName, "Cheese.exe", SearchOption.AllDirectories));
}
Answer 2:
如果你想知道更多一点关于搜索多个目录的机制,谷歌搜索发现这个职位 。 它通过自己的目录递归的一个很好的解决方案和解释。 您可以更改文件规范中Directory.GetFiles
以配合您的搜索字符串,并可能使用原样。
该链接现在是不幸死了,但简而言之解决方案基本上可以归结为:
string[] files = Directory.GetFiles("C:\\Starting\\Path\\For\\Search\\",
"cheese.exe",
SearchOption.AllDirectories);
请注意文件规范(第二个参数)接受通配符,所以你也可以搜索“.EXE”,甚至“*”递归列出所有文件。
文章来源: Find a file within all possible folders?