public static void Main() { string rootDirectory = @"C:\WINDOWS"; var rootFolder = new Folder("WINDOWS", rootDirectory); TraversDirectory(rootFolder); PrintDirectories(rootFolder, 0); }
private static void TraversFiles(Folder folder, FileInfo[] files) { foreach (var file in files) { folder.Files.Add(new File(file.Name, file.Length)); } }
private static void PrintDirectories(Folder rootFolder, int indent) { Console.Write(new string(' ', 2 * indent)); Console.WriteLine(rootFolder.Name); foreach (var file in rootFolder.Files) { Console.Write(new string(' ', 2 * (indent + 1))); Console.WriteLine(file.Name + " " + "Size: " + file.Size + " bytes"); } foreach (var folder in rootFolder.Folders) { PrintDirectories(folder, indent + 1); } }
private static void TraversDirectory(Folder folder) { var directoryInfo = new DirectoryInfo(folder.FullPath); var files = directoryInfo.GetFiles(); var directories = directoryInfo.GetDirectories(); TraversFiles(folder, files); foreach (var directory in directories) { var currentFolder = new Folder(directory.Name, directory.FullName); folder.Folders.Add(currentFolder); try { TraversDirectory(currentFolder); } catch (UnauthorizedAccessException) { } } }