using System;
using System.IO;
using Addison_Wesley.Codebook.Filesystem;

namespace Velikost_podsložek
{
   class Program
   {
      /* Metoda delegátu */
      public static void OnProgress(string folderName)
      {
         Console.WriteLine("Prohledávám {0} ...", folderName);
      }

      [STAThread]
      static void Main(string[] args)
      {
         Console.Title = "Velikost všech přímých podsložek";

         // Určení adresáře
         string folderName = "C:\\Inetpub";

         try
         {
            // Rekyrzivní zjištění velikosti souborů uložených přímo v daném 
            // adresářia ve všech jeho podadresářích. Předává se jméno adresáře 
            // a nová instance delegátu postupu
            FolderUtil.FolderSizes fs = FolderUtil.GetSubFolderSizes(
               folderName, Program.OnProgress);

            // Projdeme seznam velikostí
            Console.WriteLine("\r\nZjištěné velikosti:");
            for (int i = 0; i < fs.Count; i++)
               Console.WriteLine("{0}: {1:#,#0} bajtů",
                  fs[i].FolderPath, fs[i].Size);
         }
         catch (IOException ex)
         {
            Console.WriteLine("Chyba: " + ex.Message);
         }

         Console.WriteLine();
         Console.WriteLine("Stiskni Enter");
         Console.ReadLine();
      }
   }
}
