Example #1
0
        // 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));
            }
        }
Example #2
0
        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);
                }
            }
        }