public void AllwaysAsk(bool fastMove) { //Copy the current file. if (File.Exists(CurrentFile.DestinyPath)) { if (FileCollisionAction == CancelCollision) { return; } FileCollisionAction = FileExist(this, CurrentFile); FileCollisionAction.Invoke(fastMove); } else { CurrentFile.CopyState = CopyState.Processing; DiscoverdList.SizeOfFilesToCopy -= CurrentFile.Size; if (fastMove) { Alphaleonis.Win32.Filesystem.File.Move(CurrentFile.FullName, CurrentFile.DestinyPath); } else { FileCopier.CopyFile(CurrentFile); } AffterFileCopyAction.Invoke(CurrentFile); } }
protected CopyRoutineResult CopyRoutine(FilesList files, bool fastMove) { //System.IO.DirectoryInfo sysDirInfo = null; //FileAttributes sysAtt; //Alphaleonis.Win32.Filesystem.DirectoryInfo di = null; //FileAttributes att; for (; DiscoverdList.Index < DiscoverdList.Count; DiscoverdList.Index++) { try { if (State == CopyHandleState.Canceled) { return(CopyRoutineResult.Canceled); } //Get the file to copy. if (DiscoverdList.Count == 0 || DiscoverdList.Index >= DiscoverdList.Count) { return(CopyRoutineResult.Error); } CurrentFile = DiscoverdList.Files[DiscoverdList.Index]; CurrentFile.CopyState = CopyState.Processing; //Create the Directories. try { //di = new Alphaleonis.Win32.Filesystem.DirectoryInfo(Alphaleonis.Win32.Filesystem.Path.GetDirectoryName(CurrentFile.FullName)); //att = di.Attributes; LongPath.Directory.CreateDirectoriesInPath(CurrentFile.DestinyDirectoryPath); //di=new Alphaleonis.Win32.Filesystem.DirectoryInfo(CurrentFile.DestinyDirectoryPath); //di.Attributes = att; } catch (Exception) { } finally { //This is a copy actions wich deals with file collisions. FileCollisionAction.Invoke(fastMove); //If the File was Processed succefully============================= //Set the currentFile copy state as Copied. CurrentFile.CopyState = affeterOperationState; //Status. CopiedsFiles++; } } catch (Exception ex) { opt = ErrorsCheck(ex); if (opt == AffterErrorAction.Cancel) { return(CopyRoutineResult.Canceled); } else if (opt == AffterErrorAction.Try) { //Try to process the same file DiscoverdList.Index--; FileCopier.TotalBytesTransferred -= FileCopier.FileBytesTransferred; FileCopier.FileBytesTransferred = 0; } else if (!(ex is ThreadAbortException)) { CurrentFile.CopyState = CopyState.Error; } } } return(CopyRoutineResult.Ok); }