public void Merge(string outputhPath, ThreadCancelationToken token) { var filePartSequince = FilePartSequince.GetInstance(); var outputFile = OutputFileInfo.GetInstance(outputhPath); using (outputFile) { foreach (var filePartPath in filePartSequince.GetFilePart()) { if (token.IsCancel) { outputFile.Delete(); break; } try { outputFile.AppendPart(filePartPath); } catch (Exception e) { outputFile.Delete(); token.Cancel(e); } } if (token.IsCancel) { outputFile.Delete(); } } }
public static OutputFileInfo GetInstance(string filePath) { if (filePath == null) { throw new NGZipOutputFileNotSetException(); } if (Instance == null) { Instance = new OutputFileInfo(filePath); } return(Instance); }