using System;
using Addison_Wesley.Codebook.Filesystem;

namespace Přesun_souboru_v_API
{
   class Program
   {
      [STAThread]
      static void Main(string[] args)
      {
          Console.Title = "Přejmenování nebo přesunutí souborů a složek s dialogem postupu, možností zrušení a dotazem na přepsání";

         /* Přesun adresáře */
         string sourceFolderName = @"c:\DemoFolder";    // Zdrojový adresář
         string destFolderName = @"c:\Temp\"; // Cílový adresář

         // vytvoříme adresář jako příklad
         System.IO.Directory.CreateDirectory(sourceFolderName);

         // rekurziní přesun adresáře s dotazem na přepsání
         Console.WriteLine("Přesunuji {0} do {1} ... ", sourceFolderName,
            destFolderName);
         if (FileUtil.MoveFileOrFolder(sourceFolderName, destFolderName, true))
         {
            Console.WriteLine("Adresář úspěšně přesunut");
         }
         else
         {
            Console.WriteLine("Chyba při přesunu adresáře");
         }

         /* Přepis souboru */
         string sourceFileName = @"c:\Demo for API-Move.txt";    // Zdrojový soubor
         string destFileName = @"c:\Temp\Demo for API-Move.txt"; // Cílový soubor

         // Vytvoříme (textový) soubor, který přesuneme jako příklad 
         System.IO.StreamWriter sw = System.IO.File.CreateText(sourceFileName);
         sw.WriteLine("Příklad přesunu souboru " +
            "pomocí SHFileOperation.");
         sw.Close();

         // Přesun souboru s dotazem k uživateli, zda se má přepsat
         Console.WriteLine("Přesunuji {0} do {1} ... ", sourceFileName, destFileName);
         if (FileUtil.MoveFileOrFolder(sourceFileName, destFileName, true))
         {
            Console.WriteLine("Soubor úspěšně přesunut");
         }
         else
         {
            Console.WriteLine("Chyba při přesunu souboru");
         }

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