fixes #629 - Deleting a movie only deletes the video file

pull/702/head
Luke Pulverenti 11 years ago
parent e191836ea0
commit 7ac2f74817

@ -465,13 +465,16 @@ namespace MediaBrowser.Api
if (item.LocationType == LocationType.FileSystem) if (item.LocationType == LocationType.FileSystem)
{ {
if (Directory.Exists(item.Path)) foreach (var path in item.GetDeletePaths().ToList())
{
if (Directory.Exists(path))
{ {
Directory.Delete(item.Path, true); Directory.Delete(path, true);
} }
else if (File.Exists(item.Path)) else if (File.Exists(path))
{ {
File.Delete(item.Path); File.Delete(path);
}
} }
if (parent != null) if (parent != null)

@ -1765,5 +1765,14 @@ namespace MediaBrowser.Controller.Entities
// See if we can avoid a file system lookup by looking for the file in ResolveArgs // See if we can avoid a file system lookup by looking for the file in ResolveArgs
return metaFileEntry == null ? FileSystem.GetLastWriteTimeUtc(imagePath) : FileSystem.GetLastWriteTimeUtc(metaFileEntry); return metaFileEntry == null ? FileSystem.GetLastWriteTimeUtc(imagePath) : FileSystem.GetLastWriteTimeUtc(metaFileEntry);
} }
/// <summary>
/// Gets the file system path to delete when the item is to be deleted
/// </summary>
/// <returns></returns>
public virtual IEnumerable<string> GetDeletePaths()
{
return new[] { Path };
}
} }
} }

@ -84,5 +84,15 @@ namespace MediaBrowser.Controller.Entities
} }
return base.GetUserDataKey(); return base.GetUserDataKey();
} }
public override IEnumerable<string> GetDeletePaths()
{
if (!IsInMixedFolder)
{
return new[] { System.IO.Path.GetDirectoryName(Path) };
}
return base.GetDeletePaths();
}
} }
} }

@ -248,5 +248,10 @@ namespace MediaBrowser.Controller.Entities.TV
{ {
get { return LocationType == Model.Entities.LocationType.Virtual && IsUnaired; } get { return LocationType == Model.Entities.LocationType.Virtual && IsUnaired; }
} }
public override IEnumerable<string> GetDeletePaths()
{
return new[] { Path };
}
} }
} }

@ -258,5 +258,14 @@ namespace MediaBrowser.Controller.Entities
}).ToList(); }).ToList();
} }
public override IEnumerable<string> GetDeletePaths()
{
if (!IsInMixedFolder)
{
return new[] { System.IO.Path.GetDirectoryName(Path) };
}
return base.GetDeletePaths();
}
} }
} }

Loading…
Cancel
Save