public static MyDirectory TraverseDirectoryTree(DirectoryInfo root) { FileInfo[] files = null; DirectoryInfo[] directories = null; var myDirectory = new MyDirectory(root.Name); try { files = root.GetFiles(SearchPattern); } catch (UnauthorizedAccessException e) { Console.WriteLine(e.Message); } if (files != null) { foreach (var fi in files) { myDirectory.Files.Add(new MyFile() { Name = fi.Name, Size = fi.Length }); } } try { directories = root.GetDirectories(); } catch (UnauthorizedAccessException e) { Console.WriteLine(e.Message); } if (directories != null) { foreach (var di in directories) { myDirectory.ChildFolders.Add(TraverseDirectoryTree(di)); } } return(myDirectory); }
public static MyDirectory TraverseDirectoryTree(DirectoryInfo root) { FileInfo[] files = null; DirectoryInfo[] directories = null; var myDirectory = new MyDirectory(root.Name); try { files = root.GetFiles(SearchPattern); } catch (UnauthorizedAccessException e) { Console.WriteLine(e.Message); } if (files != null) { foreach (var fi in files) { myDirectory.Files.Add(new MyFile() { Name = fi.Name, Size = fi.Length}); } } try { directories = root.GetDirectories(); } catch (UnauthorizedAccessException e) { Console.WriteLine(e.Message); } if (directories != null) { foreach (var di in directories) { myDirectory.ChildFolders.Add(TraverseDirectoryTree(di)); } } return myDirectory; }
private static double CalculateSizeWithDfs(MyDirectory root) { return root.Files.Sum(x => x.Size) + root.ChildFolders.Sum(dir => CalculateSizeWithDfs(dir)); }
private static double CalculateSizeWithDfs(MyDirectory root) { return(root.Files.Sum(x => x.Size) + root.ChildFolders.Sum(dir => CalculateSizeWithDfs(dir))); }