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 (Directory.Exists(item.Path))
foreach (var path in item.GetDeletePaths().ToList())
{
Directory.Delete(item.Path, true);
}
else if (File.Exists(item.Path))
{
File.Delete(item.Path);
if (Directory.Exists(path))
{
Directory.Delete(path, true);
}
else if (File.Exists(path))
{
File.Delete(path);
}
}
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
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 };
}
}
}

@ -7,7 +7,7 @@ namespace MediaBrowser.Controller.Entities
public class Game : BaseItem, IHasSoundtracks
{
public List<Guid> SoundtrackIds { get; set; }
public Game()
{
MultiPartGameFiles = new List<string>();
@ -84,5 +84,15 @@ namespace MediaBrowser.Controller.Entities
}
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; }
}
public override IEnumerable<string> GetDeletePaths()
{
return new[] { Path };
}
}
}

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

Loading…
Cancel
Save