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

namespace Ordner_kopieren
{
   class Program
   {
      [STAThread]
      static void Main(string[] args)
      {
         Console.Title = "Kopírování adresáře pomocí nástrojů z .NETOrdner bez přerušení při výjimce";

         string sourceFolderName = @"C:\!Psaní\Knihy\C# Hotová řešení\";
         string destFolderName = @"C:\Backup\";

         Console.WriteLine("Kopíruji '" + sourceFolderName + "' do '" +
            destFolderName + "' ...");

         // Kopírování adresáře
         try
         {
            CopyFaults copyFaults = FolderUtil.CopyFolder(sourceFolderName, destFolderName);
            if (copyFaults.Count == 0)
            {
               Console.WriteLine("Hotovo");
            }
            else
            {
               // Při kopírování došlo k chybám: Výpis
               // všech chyb
               foreach (CopyFault copyFault in copyFaults)
               {
                  Console.WriteLine();
                  if (copyFault.IsFile)
                  {
                     // Jedná se o soubor
                     Console.WriteLine("Chyba při kopírování " +
                        "souboru '{0}' do '{1}': {2}",
                        copyFault.Source, copyFault.Destination,
                        copyFault.Error);
                  }
                  else
                  {
                     // Jedná se o adresář
                     Console.WriteLine("Chyba při kopírování " +
                        "adresáře '{0}' do '{1}': {2}",
                        copyFault.Source, copyFault.Destination,
                        copyFault.Error);
                  }
               }
            }
         }
         catch (IOException ex)
         {
             Console.WriteLine("Chyba při kopírování adresáře: {0}",
               ex.Message);
         }

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