aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs')
-rw-r--r--MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs27
1 files changed, 26 insertions, 1 deletions
diff --git a/MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs b/MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
index ad3208b77..6a413f2f0 100644
--- a/MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
+++ b/MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
@@ -86,7 +86,10 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
if (options.DeleteEmptyFolders)
{
- DeleteEmptyFolders(path);
+ foreach (var subfolder in GetDirectories(path).ToList())
+ {
+ DeleteEmptyFolders(subfolder);
+ }
}
}
@@ -100,6 +103,27 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
}
/// <summary>
+ /// Gets the directories.
+ /// </summary>
+ /// <param name="path">The path.</param>
+ /// <returns>IEnumerable{System.String}.</returns>
+ private IEnumerable<string> GetDirectories(string path)
+ {
+ try
+ {
+ return Directory
+ .EnumerateDirectories(path, "*", SearchOption.TopDirectoryOnly)
+ .ToList();
+ }
+ catch (IOException ex)
+ {
+ _logger.ErrorException("Error getting files from {0}", ex, path);
+
+ return new List<string>();
+ }
+ }
+
+ /// <summary>
/// Gets the files to organize.
/// </summary>
/// <param name="path">The path.</param>
@@ -164,6 +188,7 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
{
try
{
+ _logger.Debug("Deleting empty directory {0}", path);
Directory.Delete(path);
}
catch (UnauthorizedAccessException) { }