diff options
Diffstat (limited to 'MediaBrowser.Controller/Entities/BaseItem.cs')
| -rw-r--r-- | MediaBrowser.Controller/Entities/BaseItem.cs | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 0efb7ade8..52e150aa4 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -156,7 +156,7 @@ namespace MediaBrowser.Controller.Entities { if (SupportsIsInMixedFolderDetection) { - + } return IsInMixedFolder; @@ -2078,9 +2078,31 @@ namespace MediaBrowser.Controller.Entities /// Gets the file system path to delete when the item is to be deleted /// </summary> /// <returns></returns> - public virtual IEnumerable<string> GetDeletePaths() + public virtual IEnumerable<FileSystemMetadata> GetDeletePaths() + { + return new[] { + new FileSystemMetadata + { + FullName = Path, + IsDirectory = IsFolder + } + }.Concat(GetLocalMetadataFilesToDelete()); + } + + protected List<FileSystemMetadata> GetLocalMetadataFilesToDelete() { - return new[] { Path }; + if (IsFolder || !IsInMixedFolder) + { + return new List<FileSystemMetadata>(); + } + + var filename = System.IO.Path.GetFileNameWithoutExtension(Path); + var extensions = new[] { ".nfo", ".xml", ".srt" }.ToList(); + extensions.AddRange(SupportedImageExtensionsList); + + return FileSystem.GetFiles(System.IO.Path.GetDirectoryName(Path)) + .Where(i => extensions.Contains(i.Extension, StringComparer.OrdinalIgnoreCase) && System.IO.Path.GetFileNameWithoutExtension(i.FullName).StartsWith(filename, StringComparison.OrdinalIgnoreCase)) + .ToList(); } public bool AllowsMultipleImages(ImageType type) |
