예제 #1
0
        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());
        }
예제 #2
0
        public static void Delete(string mainFilePath)
        {
            var fileToDelete = new PartFileInfo(mainFilePath);

            while (fileToDelete.Exists)
            {
                fileToDelete.Delete();
                fileToDelete = fileToDelete.NextSequentialFile;
            }
        }
예제 #3
0
        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));
        }