// static private static void RecursiveReadFolder(FileListNode parent, string path) { foreach (var folder in System.IO.Directory.GetDirectories(path)) { var node = new FileListNode(parent, System.IO.Path.GetFileName(folder), true, 0, new DateTime(0), new DateTime(0)); parent.AddChild(node); RecursiveReadFolder(node, folder); } foreach (var filename in System.IO.Directory.GetFiles(path)) { var fi = new System.IO.FileInfo(filename); parent.AddChild(new FileListNode( parent, System.IO.Path.GetFileName(filename), false, fi.Length, fi.CreationTimeUtc, fi.LastWriteTimeUtc)); } }
private static void RecursiveReadStream(System.IO.BinaryReader br, FileListNode parent) { var count = br.ReadInt32(); for (int i = 0; i < count; i++) { var name = br.ReadString(); var isDirectory = br.ReadBoolean(); var length = br.ReadInt64(); var creationTimeUtc = DateTime.SpecifyKind(new DateTime(br.ReadInt64()), DateTimeKind.Utc); var lastWriteTimeUtc = DateTime.SpecifyKind(new DateTime(br.ReadInt64()), DateTimeKind.Utc); var node = new FileListNode(parent, name, isDirectory, length, creationTimeUtc, lastWriteTimeUtc); parent.AddChild(node); if (node.IsDirectory) { RecursiveReadStream(br, node); } } }