aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities/BaseItem.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Entities/BaseItem.cs')
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs28
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)