/// <summary>
 /// Copy the contents of one directory to another. Note  that this method
 /// provides a thin-layer over file system calls -- low-level file system exceptions
 /// may be thrown from this class and they should be caught and handled appropriately.
 /// </summary>
 /// <param name="sourcePath">Path to copy files from</param>
 /// <param name="destinationPath">Path to copy files to</param>
 /// <param name="overwrite">Overwrite existing files (if set to false then
 /// an error is thrown if a destination file already exists)</param>
 /// <param name="recursive">if true, then copy files and subfolders, if false only copy files</param>
 public static void Copy(
     string sourcePath, string destinationPath, bool overwrite, bool recursive)
 {
     // copy all files in the source to the destination
     DirectoryCopier copier =
         new DirectoryCopier(sourcePath, destinationPath, overwrite, recursive);
     copier.Copy();
 }
        /// <summary>
        /// Copy the contents of one directory to another. Note  that this method
        /// provides a thin-layer over file system calls -- low-level file system exceptions
        /// may be thrown from this class and they should be caught and handled appropriately.
        /// </summary>
        /// <param name="sourcePath">Path to copy files from</param>
        /// <param name="destinationPath">Path to copy files to</param>
        /// <param name="overwrite">Overwrite existing files (if set to false then
        /// an error is thrown if a destination file already exists)</param>
        /// <param name="recursive">if true, then copy files and subfolders, if false only copy files</param>
        public static void Copy(
            string sourcePath, string destinationPath, bool overwrite, bool recursive)
        {
            // copy all files in the source to the destination
            DirectoryCopier copier =
                new DirectoryCopier(sourcePath, destinationPath, overwrite, recursive);

            copier.Copy();
        }