我需要找到特定文件的路径。 我知道文件的文件名和扩展名。但我不知道文件所在的位置。 该文件将位于 C:\ Program Files 的任何子目录中。所以我需要在程序文件夹中搜索文件。 我的文件名是 CASdb.accdb
答案 0 :(得分:3)
最快的方法之一是对目录中的文件进行枚举。当然,在 C:\ Program Files 中会有很多文件,所以你必须对其进行测试才能看出它的表现如何。
MSDN - Directory.EnumerateFiles Method
一个例子:
// LINQ query for all files containing the word 'Europe'.
var files = from file in
Directory.EnumerateFiles(@"C:\\Program Files\\", SearchOption.AllDirectories)
where file.ToLower().Contains("casdb.accdb")
select file;
答案 1 :(得分:1)
您可以使用Environment.SpecialFolder.ProgramFiles
查找 ProgramFiles 文件夹中的文件。
// Search All Files **Recursive**
DirSearch(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles));
files.Dump();
// Search Files in ProgramFiles Folder Only
files.AddRange(Directory.EnumerateFiles(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)));
files.AddRange(Directory.EnumerateFiles(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)));
static List<string> files = new List<string>();
static void DirSearch(string sDir)
{
try
{
foreach (string d in Directory.GetDirectories(sDir))
{
foreach (string f in Directory.GetFiles(d))
{
if (true /*logic*/)
files.Add(f);
}
DirSearch(d);
}
}
catch (System.Exception excpt)
{
Console.WriteLine(excpt.Message);
}
}
您应该在foreach
中实施搜索逻辑。