Beispiel #1
0
        static void Main()
        {
            string directoryName = @"D:\Movies";

            Folder rootFolder = new Folder(directoryName);

            BuildTree(rootFolder);

            Console.WriteLine("Folder: {0}\nSize: {1} bytes", directoryName, GetFolderSize(rootFolder));
        }
Beispiel #2
0
        public static long GetFolderSize(Folder rootFolder)
        {
            if (rootFolder == null )
            {
                return 0;
            }

            long childSum = 0;

            foreach (var folder in rootFolder.ChildFolders)
            {
                childSum += GetFolderSize(folder);
            }

            return childSum + rootFolder.Files.Sum( f => f.Size);
        }
Beispiel #3
0
        public static void BuildTree(Folder directory)
        {
            List<DirectoryInfo> childrenDirectories =
                new DirectoryInfo(directory.Name).GetDirectories().ToList();

            List<FileInfo> childrenFiles =
                new DirectoryInfo(directory.Name).GetFiles().ToList();

            foreach (var file in childrenFiles)
            {
                var currFile = new File(file.FullName, file.Length);
                directory.Files.Add(currFile);
            }

            foreach (var childDirectory in childrenDirectories)
            {
                var currFolder = new Folder(childDirectory.FullName);
                directory.ChildFolders.Add(currFolder);
                BuildTree(currFolder);
            }
        }