diff options
Diffstat (limited to 'MediaBrowser.Server.Startup.Common/Migrations/PlaylistImages.cs')
| -rw-r--r-- | MediaBrowser.Server.Startup.Common/Migrations/PlaylistImages.cs | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Startup.Common/Migrations/PlaylistImages.cs b/MediaBrowser.Server.Startup.Common/Migrations/PlaylistImages.cs new file mode 100644 index 000000000..f6ddf5847 --- /dev/null +++ b/MediaBrowser.Server.Startup.Common/Migrations/PlaylistImages.cs @@ -0,0 +1,55 @@ +using MediaBrowser.Controller.Configuration; +using MediaBrowser.Controller.Entities; +using System.IO; +using System.Linq; + +namespace MediaBrowser.Server.Startup.Common.Migrations +{ + public class PlaylistImages : IVersionMigration + { + private readonly IServerConfigurationManager _config; + + public PlaylistImages(IServerConfigurationManager config) + { + _config = config; + } + + public void Run() + { + if (!_config.Configuration.PlaylistImagesDeleted) + { + DeletePlaylistImages(); + _config.Configuration.PlaylistImagesDeleted = true; + _config.SaveConfiguration(); + } + } + + private void DeletePlaylistImages() + { + try + { + var path = Path.Combine(_config.ApplicationPaths.DataPath, "playlists"); + + var files = Directory.GetFiles(path, "*", SearchOption.AllDirectories) + .Where(i => BaseItem.SupportedImageExtensions.Contains(Path.GetExtension(i) ?? string.Empty)) + .ToList(); + + foreach (var file in files) + { + try + { + File.Delete(file); + } + catch (IOException) + { + + } + } + } + catch (IOException) + { + + } + } + } +} |
