Пример #1
0
 public FileProcessingOptions(FileProcessingModeEnum fileProcessingMode, FileManipulationModeEnum fileManipulationMode, string sourceDirectory, bool?alsoFromSubfolders, string targetDirectory,
                              string newFolderName,
                              int newFolderPostfix, int countFilesPerFolder, PresortMethodEnum presortMethod, RenameModeEnum renameMode,
                              string renameSymbols)
 {
     FileProcessingMode   = fileProcessingMode;
     FileManipulationMode = fileManipulationMode;
     SourceDirectory      = (string.IsNullOrWhiteSpace(sourceDirectory) || !Directory.Exists(sourceDirectory))
         ? throw new DirectoryNotFoundException()
         : sourceDirectory;
     AlsoFromSubfolders        = alsoFromSubfolders ?? false;
     TargetDirectory           = targetDirectory ?? sourceDirectory;
     NewFolderName             = string.IsNullOrWhiteSpace(newFolderName) ? "New folder" : newFolderName;
     NewFolderPostfix          = newFolderPostfix;
     PresortMethod             = presortMethod;
     RenameMode                = renameMode;
     RenameSymbols             = renameSymbols;
     FilesList                 = GetFilesList();
     CountFilesPerFolder       = countFilesPerFolder == 0 ? FilesList.Count : countFilesPerFolder;
     FoldersCount              = (int)Math.Ceiling((double)FilesList.Count / CountFilesPerFolder);
     MainWindow.mainWindow.max = FilesList.Count;
 }
        public static IFileProcessor CreateFileProcessor(FileProcessingModeEnum fileProcessingMode)
        {
            switch (fileProcessingMode)
            {
            case FileProcessingModeEnum.Serial:
                return(new SerialFileProcessor());

            case FileProcessingModeEnum.Task:
                return(new TPLFileProcessor());

            case FileProcessingModeEnum.Action:
                return(new ActionFileProcessor());

            case FileProcessingModeEnum.PLINQ:
                return(new PLINQFileProcessor());

            case FileProcessingModeEnum.Async:
                return(new AsyncFileProcessor());

            default:
                throw new NotImplementedException();
            }
        }