private static bool ConfirmCopy(ConfirmCopyCallback confirmCopy, FileSystemInfo source, string destination) { if (confirmCopy != null) { return(confirmCopy(source, destination)); } return(true); }
public static bool CopyFile(FileInfo source, string destination, ConfirmCopyCallback confirmCopy, NotifyCopyCallback notifyCopy, ConfirmCreateDirectoryCallback confirmCreateDirectory, NotifyCreateDirectoryCallback notifyCreateDirectory) { string directoryName = Path.GetDirectoryName(destination); if (CreateDirectory(directoryName, confirmCreateDirectory, notifyCreateDirectory)) { return(CopyFile(source, destination, confirmCopy, notifyCopy)); } return(false); }
public static bool CopyFile(FileInfo source, string destination, ConfirmCopyCallback confirmCopy, NotifyCopyCallback notifyCopy) { if (ConfirmCopy(confirmCopy, source, destination)) { source.CopyTo(destination, true); NotifyCopy(notifyCopy, source, destination); return(true); } return(false); }
public static bool CopyDirectory(DirectoryInfo source, string destination, ConfirmCopyCallback confirmCopy, NotifyCopyCallback notifyCopy, ConfirmCreateDirectoryCallback confirmCreateDirectory, NotifyCreateDirectoryCallback notifyCreateDirectory) { if (ConfirmCopy(confirmCopy, source, destination)) { if (CreateDirectory(destination, confirmCreateDirectory, notifyCreateDirectory)) { foreach (FileSystemInfo fsi in source.GetFileSystemInfos()) { if (fsi is FileInfo) { CopyFile((FileInfo)fsi, Path.Combine(destination, fsi.Name), confirmCopy, notifyCopy); } else if (fsi is DirectoryInfo) { CopyDirectory((DirectoryInfo)source, Path.Combine(destination, source.Name), confirmCopy, notifyCopy, confirmCreateDirectory, notifyCreateDirectory); } } } NotifyCopy(notifyCopy, source, destination); return(true); } return(false); }
public MultiThreadCopyUICommand(string source, string destination, ConfirmCopyCallback confirmCopy, ConfirmCreateDirectoryCallback confirmCreateDirectory, NotifyCopyCallback notifyCopy, NotifyCreateDirectoryCallback notifyCreateDirectory) : base(source, destination, confirmCopy, confirmCreateDirectory, notifyCopy, notifyCreateDirectory) { }
public static bool CopyFile <T>(FileInfo source, string destination, ref int pbCancel, T progressState, ProgressUpdate <T> progressUpdate, ConfirmCopyCallback confirmCopy, NotifyCopyCallback notifyCopy, ConfirmCreateDirectoryCallback confirmCreateDirectory, NotifyCreateDirectoryCallback notifyCreateDirectory) { string directoryName = Path.GetDirectoryName(destination); if (CreateDirectory(directoryName, confirmCreateDirectory, notifyCreateDirectory)) { return(CopyFile(source, destination, ref pbCancel, progressState, progressUpdate, confirmCopy, notifyCopy)); } return(false); }
public static bool CopyFile <T>(FileInfo source, string destination, ref int pbCancel, T progressState, ProgressUpdate <T> progressUpdate, ConfirmCopyCallback confirmCopy, NotifyCopyCallback notifyCopy) { if (ConfirmCopy(confirmCopy, source, destination)) { ProgressHandlerAdapter <T> adapter = new ProgressHandlerAdapter <T>(progressState, progressUpdate); CopyFileEx(source.FullName, destination, adapter.CopyProgressRoutine, IntPtr.Zero, ref pbCancel, CopyFileFlags.COPY_FILE_RESTARTABLE); NotifyCopy(notifyCopy, source, destination); return(true); } return(false); }
public static bool CopyFile <T>(FileInfo source, string destination, int retryCount, ref int pbCancel, T progressState, ProgressUpdate <T> progressUpdate, ConfirmCopyCallback confirmCopy, NotifyCopyCallback notifyCopy) { Exception lastException = null; do { try { return(CopyFile <T>(source, destination, ref pbCancel, progressState, progressUpdate, confirmCopy, notifyCopy)); } catch (Exception ex) { lastException = ex; } } while (--retryCount >= 0); throw lastException; }