Esempio n. 1
0
        public static void Main()
        {
            Folder folder = new Folder(FolderName);
            DirectoryInfo directory = new DirectoryInfo(DirectoryPath);
            TraverseDirectory(directory, folder);

            long size = GetSumOfFileSizes(folder);
            Console.WriteLine("The sum of the file sizes in folder {0} is {1}", folder.Name, size);
        }
Esempio n. 2
0
        private static long GetSumOfFileSizes(Folder folder)
        {
            long size = 0;

            foreach (var file in folder.Files)
            {
                size += file.Size;
            }

            foreach (var childFolder in folder.ChildFolders)
            {
                GetSumOfFileSizes(childFolder);
            }

            return size;
        }
Esempio n. 3
0
        private static void TraverseDirectory(DirectoryInfo directory, Folder folder)
        {
            FileInfo[] files = null;
            DirectoryInfo[] subDirectories = null;

            try
            {
                files = directory.GetFiles();
            }
            catch (UnauthorizedAccessException ex)
            {
                //Console.WriteLine(ex.Message);
            }
            catch (DirectoryNotFoundException ex)
            {
                Console.WriteLine(ex.Message);
            }

            if (files != null)
            {
                foreach (var file in files)
                {
                    File newFile = new File(file.Name, file.Length);
                    folder.Files.Add(newFile);
                }

                subDirectories = directory.GetDirectories();

                foreach (var subDirectory in subDirectories)
                {
                    Folder newFolder = new Folder(subDirectory.Name);
                    folder.ChildFolders.Add(newFolder);
                    TraverseDirectory(subDirectory, newFolder);
                }
            }
        }