3
我正在編寫檢索某些文件匹配模式的C#函數。使用通配符解析規範路徑
輸入:C:\ abc * \ abc?\ testfile。*
輸出:所有文件匹配。
我以爲我可以通過遞歸。但是,這是不容易:(
你有一個很好的算法
更新:
我做到了感謝基倫:)
void PrintAllFiles(DirectoryInfo currentDir,
string currentPattern, string nextPatten)
{
DirectoryInfo[] dis = currentDir.GetDirectories(currentPattern);
if (dis.Length > 0)
{
string[] remainPattern = nextPatten.Split("\\".ToCharArray());
if (remainPattern.Length > 0)
{
foreach (DirectoryInfo di in dis)
{
PrintAllFiles(di, remainPattern.First(),
string.Join("\\", remainPattern.Skip(1).ToArray()));
}
}
}
FileInfo[] fis = currentDir.GetFiles(currentPattern);
foreach (FileInfo fi in fis)
{
Console.WriteLine(fi.DirectoryName + "\\" + fi.Name);
}
}
而不是'「\\」'你應該使用'Path.DirectorySeparatorChar' – Oliver 2010-07-22 12:23:44
同意。但是在盒子裏代表太長了。 – Benjamin 2010-07-22 13:35:21