Advertisement
SHILY

Удаление файлов в заданной директории по заданным критериям

Apr 5th, 2021 (edited)
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.64 KB | None | 0 0
  1. //-----------------------------------------------------
  2. var pathFolder = @"C:\ZennoProjects\Testing\Images"; // путь к папке.
  3.  
  4. var extension = "jpg|jpeg|png";                      // расширение файлов (если переменную оставить пустой, то будут учтены все файлы).
  5.  
  6. var сonsiderFileSize = true;                        // true - учитывать размер файла; false - не учитывать размер файла.
  7. var size = 70;                                       // размер файла в килобайтах.
  8.  
  9. var searchOption = SearchOption.AllDirectories;      // TopDirectoryOnly - проход по заданной папке; AllDirectories - проход по заданной и вложенным папкам.
  10. //-----------------------------------------------------
  11.  
  12. var files = new List<string>();
  13.  
  14. if (!Directory.Exists(pathFolder)) return "Папки не существует";
  15.  
  16. files = string.IsNullOrWhiteSpace(extension) ? Directory.EnumerateFiles(pathFolder, "*", searchOption).ToList() :
  17.     Directory.EnumerateFiles(pathFolder, "*", searchOption).Where(x => Regex.IsMatch(Path.GetExtension(x).ToLower(), $@"\.({extension})$")).ToList();
  18.  
  19. foreach (var file in files)
  20. {
  21.     var fileInfo = new FileInfo(file);
  22.    
  23.     switch (сonsiderFileSize)
  24.     {
  25.         case true:
  26.             if (fileInfo.Length / 1024 <= size)
  27.             {
  28.                 try
  29.                 {
  30.                     fileInfo.Delete();
  31.                 }
  32.                 catch (Exception ex)
  33.                 {
  34.                     project.SendWarningToLog(ex.Message);
  35.                 }
  36.             }
  37.             break;
  38.         case false:
  39.             try
  40.             {
  41.                 fileInfo.Delete();
  42.             }
  43.             catch (Exception ex)
  44.             {
  45.                 project.SendWarningToLog(ex.Message);
  46.             }
  47.             break;
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement