static void Main(string[] args) { DirectoryInfo dir = new DirectoryInfo("../.."); Folder fold = new Folder(dir.Name, null, null); Tree<Folder> folders = new Tree<Folder>(fold); DirectoryTraversal(folders, dir); }
public static void DirectoryTraversal(Tree<Folder> folder, DirectoryInfo dir) { File[] files = new File[dir.GetFiles().Length]; FileInfo[] filesInfo = dir.GetFiles(); for (int i = 0; i < filesInfo.Length; i++) { files[i] = new File(filesInfo[i].Name, filesInfo[i].Length); } folder.Value.Files = files; List<Folder> childFolders = new List<Folder>(); foreach (var directory in dir.GetDirectories()) { Folder fold = new Folder(directory.Name, null, null); Tree<Folder> node = new Tree<Folder>(fold); DirectoryTraversal(node, directory); folder.Children.Add(node); childFolders.Add(fold); node.Parent = folder; } folder.Value.ChildFolders = childFolders.ToArray(); }
public Folder(string name, Folder[] folders, File[] files) { this.Name = name; this.ChildFolders = folders; this.Files = files; }