Пример #1
0
 public void MoveTo(string destDir, MoveOperation operation)
 {
     if (!isDir)
     {
         WindowsFileSystemApi.MoveFile((FileInfo)adapted, new FileInfo(Path.Combine(destDir, Name)), MoveFileOptions.CopyAllowed | MoveFileOptions.ReplaceExisting, operation.MovedPieceOfFile);
     }
     else
     {
         MoveDirectory((DirectoryInfo)adapted, destDir, operation);
     }
 }
Пример #2
0
 public void CopyTo(string destDir, CopyOperation operation)
 {
     if (!isDir)
     {
         WindowsFileSystemApi.CopyFile((FileInfo)adapted, new FileInfo(Path.Combine(destDir, Name)), CopyFileOptions.None, operation.CopiedPieceOfFile);
     }
     else
     {
         CopyDirectory((DirectoryInfo)adapted, destDir, operation);
     }
 }
Пример #3
0
        /// <summary>
        /// Copy directory
        /// </summary>
        /// <param name="dir">Directory to copy</param>
        /// <param name="destination">Destination directory</param>
        /// <param name="operation">CopyOperation to report changes</param>
        private void CopyDirectory(DirectoryInfo dir, string destination, CopyOperation operation)
        {
            string copyDir = Path.Combine(destination, dir.Name);

            Directory.CreateDirectory(copyDir);

            foreach (FileInfo file in dir.GetFiles())
            {
                WindowsFileSystemApi.CopyFile(file, new FileInfo(Path.Combine(copyDir, file.Name)), CopyFileOptions.None, operation.CopiedPieceOfFile);
            }

            foreach (DirectoryInfo di in dir.GetDirectories())
            {
                CopyDirectory(di, copyDir, operation);
            }
        }
Пример #4
0
        /// <summary>
        /// Moved directory with content to another place
        /// </summary>
        /// <param name="dir">Directory to move</param>
        /// <param name="destination">Destination path</param>
        /// <param name="operation">MoveOperation to report progress</param>
        private void MoveDirectory(DirectoryInfo dir, string destination, MoveOperation operation)
        {
            //TODO: Check if is WinAPI function for moving directories
            string moveDir = Path.Combine(destination, dir.Name);

            Directory.CreateDirectory(moveDir);

            foreach (FileInfo file in dir.GetFiles())
            {
                WindowsFileSystemApi.MoveFile(file, new FileInfo(Path.Combine(moveDir, file.Name)), MoveFileOptions.CopyAllowed, operation.MovedPieceOfFile);
            }

            foreach (DirectoryInfo di in dir.GetDirectories())
            {
                MoveDirectory(di, moveDir, operation);
            }

            dir.Delete(true);
        }