public static long sumOfFileSizesInDirectory(Folder rootFolder, Folder searchFolder)
        {
            long sum = 0;

            if (rootFolder.Name == searchFolder.Name)
            {
                sum = rootFolder.FolderSize();
                return sum;
            }

            foreach (var folder in rootFolder.ChieldFolders)
            {
                if (folder.Name == searchFolder.Name)
                {
                    sum = folder.FolderSize();
                    return sum;
                }
                else
                {
                    sumOfFileSizesInDirectory(folder, searchFolder);
                }
            }

            return sum;
        }
        public static void Main()
        {
            string rootName = @"C:\Windows";
            string dirSearchSum = @"C:\Windows\Boot";
            Folder rootFolder = new Folder(rootName);
            Folder someDirectory = new Folder(dirSearchSum);
            CreateThree(rootFolder);

            Console.WriteLine("Folder {0}", dirSearchSum);
            Console.WriteLine("Size of folder is {0} bites", sumOfFileSizesInDirectory(rootFolder, someDirectory));
        }
 public static void CreateThree(Folder folder)
 {
     try
     {
         string[] filesName = Directory.GetFiles(folder.Name);
         folder.AddFiles(filesName);
         var dirs = Directory.GetDirectories(folder.Name);
         foreach (var dir in dirs)
         {
             Folder newfolder = new Folder(dir);
             folder.AddChieldsFolders(newfolder);
             CreateThree(newfolder);
         }
     }
     catch (UnauthorizedAccessException)
     {
         Console.WriteLine("No access to {0} directory", folder.Name);
         return;
     }
 }
예제 #4
0
 public void AddChieldsFolders(Folder chieldFolder)
 {
     this.chieldFolders.Add(chieldFolder);
 }