private static void AddDirectory(VirtualFolder root, DirectoryInfo dir) { foreach (var file in dir.GetFiles()) { root.AddEntry(new VirtualRealFile(file.Name, file.FullName)); } foreach (var realFolder in dir.GetDirectories()) { VirtualFolder folder = new VirtualFolder(realFolder.Name); folder.Parent = root; root.AddEntry(folder); AddDirectory(folder, realFolder); } }