private static List <PartFileInfo> FindFiles(string mainFilePath) { var mainPart = new PartFileInfo(mainFilePath); var subsequentFiles = mainPart.Directory.GetFiles() .Select(file => new PartFileInfo(file)) .Where(i => i.IsSubsequentOf(mainPart)) .OrderBy(i => i.Number); return(new[] { mainPart }.Union(subsequentFiles).ToList()); }
public static void Delete(string mainFilePath) { var fileToDelete = new PartFileInfo(mainFilePath); while (fileToDelete.Exists) { fileToDelete.Delete(); fileToDelete = fileToDelete.NextSequentialFile; } }
private FileStream OpenWriteNextFile() { bool isWriting = !lastWrittenFile.Equals(default(PartFileInfo)); PartFileInfo mainFile = files.First(); PartFileInfo file = lastWrittenFile = isWriting ? lastWrittenFile.NextSequentialFile : mainFile; if (!file.Equals(mainFile)) { files.Add(file); } return(File.OpenWrite(file.Path)); }