public PreparedFolder Copy() { var folder = new PreparedFolder(this.Name); folder.Files.AddRange(this.Files.Select(item => new PreparedFile(item.Name))); folder.Folders.AddRange(this.Folders.Select(item => item.Copy())); return(folder); }
private PreparedFolder read(string path, Progress progress) { string folderName = Path.GetFileName(path); var folder = new PreparedFolder(folderName); raiseProgressChanged(progress.Next(), folderName); folder.Files.AddRange(Directory.GetFiles(path) .Select(Path.GetFileName) .Select(item => new PreparedFile(item))); foreach (var subPath in Directory.GetDirectories(path)) { folder.Folders.Add(read(subPath, progress)); } return(folder); }