I am writing a C # function that retrieves some associated files.
Input: C: \ abc * \ abc? \ Testfile. *
Exit: all files match.
I thought I could do it by recursion. But it was not easy :(
Do you have a good algorithm?
Update :
I did it. Thanks Kieren :)
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);
}
}
source
share