protected virtual bool breakOnCopierError(FileCopierService cf, Exception e) { bool isRetry = false; if (!skipAllCopierErrors) { pauseTimer(); var ed = new FileCopierErrorDialog(cf, e); if (ed.Show()) { skipAllCopierErrors = ed.RememberChoice == 1; isRetry = ed.ClickedButtonNumber == 0; } else { IsCanceled = true; isRetry = false; } resumeTimer(); } return !isRetry; }
protected virtual bool copyFile(string sourcePath, string destinationPath) { bool isBreak = false; bool isDone = false; bool isHasError = false; FileCopierService cf = null; while (!isBreak && !isDone && canExecute()) { isHasError = false; try { cf = new FileCopierService(sourcePath, destinationPath); cf.Start(); while (cf.CopyBlock() && canExecute()) { alreadyByteCopy += cf.LastBlockTransferBytes; setText(MsgStr.MsgCopyOrMoveToPath + getStatusMessage()); } isDone = true; } catch (Exception e) { isHasError = true; isBreak = breakOnCopierError(cf, e); } finally { if (cf != null) cf.Finish(IsCanceled || isHasError); } } return isDone; }
public FileCopierErrorDialog(FileCopierService fc, Exception error) : base(error, true) { _fileCopier = fc; }