PlaylistImages.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using MediaBrowser.Controller.Configuration;
  2. using MediaBrowser.Controller.Entities;
  3. using System.IO;
  4. using System.Linq;
  5. namespace MediaBrowser.Server.Startup.Common.Migrations
  6. {
  7. public class PlaylistImages : IVersionMigration
  8. {
  9. private readonly IServerConfigurationManager _config;
  10. public PlaylistImages(IServerConfigurationManager config)
  11. {
  12. _config = config;
  13. }
  14. public void Run()
  15. {
  16. if (!_config.Configuration.PlaylistImagesDeleted)
  17. {
  18. DeletePlaylistImages();
  19. _config.Configuration.PlaylistImagesDeleted = true;
  20. _config.SaveConfiguration();
  21. }
  22. }
  23. private void DeletePlaylistImages()
  24. {
  25. try
  26. {
  27. var path = Path.Combine(_config.ApplicationPaths.DataPath, "playlists");
  28. var files = Directory.GetFiles(path, "*", SearchOption.AllDirectories)
  29. .Where(i => BaseItem.SupportedImageExtensions.Contains(Path.GetExtension(i) ?? string.Empty))
  30. .ToList();
  31. foreach (var file in files)
  32. {
  33. try
  34. {
  35. File.Delete(file);
  36. }
  37. catch (IOException)
  38. {
  39. }
  40. }
  41. }
  42. catch (IOException)
  43. {
  44. }
  45. }
  46. }
  47. }