Reading a directory tree
(Another snippet I originally posted to CodeKeep.)
Code:
public static class FileManagement
{public static List<FileInfo> GetFiles(string rootDirectory)
{Debug.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.ToString() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() called.");
DirectoryInfo di = new DirectoryInfo(rootDirectory);
List<FileInfo> files = new List<FileInfo>();GetFileList(di, ref files);
foreach (FileInfo file in files)
Debug.WriteLine(file.FullName);return files;
}private static void GetFileList(DirectoryInfo di, ref List<FileInfo> files)
{Debug.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.ToString() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() called.");
foreach (FileInfo file in di.GetFiles())
files.Add(file);foreach (DirectoryInfo innerDir in di.GetDirectories())
GetFileList(innerDir, ref files);}
}
Usage:
List<FileInfo> files = GetFiles(rootDirectory);
