public static FileInfo[] findFile(String whereToSearch, String searchFor , String mode)
{
IEnumerable<FileInfo> files = null;
if (mode.Equals(""))
mode = "s";
if (searchFor.Equals(""))
searchFor = "*";
if (mode.Equals("r") || mode.Equals("recursive"))
{
DirectoryInfo dir = new DirectoryInfo(whereToSearch);
files = dir.EnumerateFiles(searchFor, searchOption: SearchOption.AllDirectories);
}
if (mode.Equals("s") || mode.Equals("specific"))
{
DirectoryInfo dir = new DirectoryInfo(whereToSearch);
files = dir.EnumerateFiles(searchFor, searchOption: SearchOption.TopDirectoryOnly);
}
if (files != null) return files.ToArray<FileInfo>();
else return null;
}
这是一个示例如何做到这一点。
重要的是要说只有文件名可以包含通配符模式,如*。路径可以作为从哪里开始搜索,并给出searchOption:searchOption.AllDirectories作为参数,它将通过入口路径的所有子目录。
您将收到一个FileInfo数组,其中包含路径和更多信息的对象。
当然,在启动现场,并为每个目录下,如果那里有一个extobjects,看看在那里.. – BugFinder
的可能的复制[如何扫描通配符的目录与特定的子目录(HTTP://计算器.COM /问题/ 13815564 /如何对扫描一个目录,用通配符上带有一个特定的子目录中的) – Ultraviolet