Beispiel #1
0
        public static IReadOnlyList <string> Delete(DeleteConfiguration config)
        {
            switch (config.FolderDeleteOption)
            {
            case FolderDeleteOption.DeleteEmptiedFolders:
                return(DeleteFilesAndDeleteEmptiedFolders(config));

            case FolderDeleteOption.DeleteAllEmptyFolders:
                return(DeleteFilesAndDeleteAllEmptyFolders(config));

            case FolderDeleteOption.NoDeleteEmptyFolders:
                return(OnlyDeleteFiles(config));

            default:
                throw new ArgumentOutOfRangeException(nameof(config.FolderDeleteOption));
            }
        }
Beispiel #2
0
        public static FolderCollection GetOldFiles(DeleteConfiguration config)
        {
            var allFiles = Directory.GetFileSystemEntries(config.Folder, "*.*", SearchOption.AllDirectories);

            var oldFiles = allFiles.Where(f => config.IsFileOld(f))
                           .Select(f => new OldFile(f, config.FileDeleter))
                           .ToList();

            var foldersWithOldFiles = oldFiles.GroupBy(f => f.FilePath)
                                      .Select(fg => new FolderWithFiles(fg.Key, fg.ToList(), config.FolderDeleter))
                                      .ToList();

            var allSubFolders = Directory.EnumerateDirectories(config.Folder, "*", SearchOption.AllDirectories)
                                .Select(f => new SubFolder(f, config.FolderDeleter))
                                .ToList();


            return(new FolderCollection(foldersWithOldFiles, allSubFolders));
        }
Beispiel #3
0
 private static IReadOnlyList <string> OnlyDeleteFiles(DeleteConfiguration config)
 => FileSystem.GetOldFiles(config)
 .DeleteOldFiles()
 .GetErrors();
Beispiel #4
0
 private static IReadOnlyList <string> DeleteFilesAndDeleteAllEmptyFolders(DeleteConfiguration config)
 => FileSystem.GetOldFiles(config)
 .DeleteOldFiles()
 .DeleteAllEmptyFolders()
 .GetErrors();