如何在嵌套文件夹中搜索文件?
答案 0 :(得分:3)
看看这个功能
System.IO.DirectoryInfo.GetFiles("SearchPattern",SearchOption.AllDirectories)
答案 1 :(得分:1)
您需要以递归方式执行此操作。请点击以下链接查看代码示例。
答案 2 :(得分:1)
使用递归。
编写一个搜索特定文件夹中文件的方法。 从内部为每个子目录调用方法,并让它在找到文件时返回路径。
Pseudo-C#-Code(仅用于获取想法):
public string SearchFile (string path, string filename)
{
if (File.exists(path+filename)) return path;
foreach(subdir in path)
{
string dir = Searchfile(subdirpath,filename);
if (dir != "") return dir;
}
}
这将遍历所有子目录并返回搜索到的文件的路径(如果它在那里),否则为空字符串。
答案 3 :(得分:1)
试试这个:
static string SearchFile(string folderPath, string fileToSearch)
{
string foundFilePath = null;
///Get all directories in current directory
string[] directories = Directory.GetDirectories(folderPath);
if (directories != null && directories.Length > 0)
{
foreach (string dirPath in directories)
{
foundFilePath = SearchFile(dirPath, fileToSearch);
if (foundFilePath != null)
{
return foundFilePath;
}
}
}
string[] files = Directory.GetFiles(folderPath);
if (files != null && files.Length > 0)
{
foundFilePath = files.FirstOrDefault(filePath => Path.GetFileName(filePath).Equals(fileToSearch, StringComparison.OrdinalIgnoreCase));
}
return foundFilePath;
}
答案 4 :(得分:0)
尝试在codeplex中搜索流畅的路径...它提供了使用lambdas / linq搜索目录中文件的快捷方式
答案 5 :(得分:0)
查看DirectoryInfo课程。
你可能需要进行一些递归
答案 6 :(得分:0)
使用Linq和 Directory.EnumerateFiles
var files =
from file in Directory.EnumerateFiles(rootFolder,searchFor,SearchOption.AllDirectories)
select file;