diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs | 27 |
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) { } |
