diff --git a/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs b/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs index 4551fe29a..6112862af 100644 --- a/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs +++ b/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs @@ -1,6 +1,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Resolvers; +using MediaBrowser.Model.Logging; using System; using System.Collections.Generic; using System.IO; @@ -13,6 +14,8 @@ namespace MediaBrowser.Server.Implementations.Library /// public class CoreResolutionIgnoreRule : IResolverIgnoreRule { + private readonly ILogger _logger; + /// /// Any folder named in this list will be ignored - can be added to at runtime for extensibility /// @@ -27,6 +30,11 @@ namespace MediaBrowser.Server.Implementations.Library "extrafanart" }; + public CoreResolutionIgnoreRule(ILogger logger) + { + _logger = logger; + } + /// /// Shoulds the ignore. /// @@ -51,6 +59,8 @@ namespace MediaBrowser.Server.Implementations.Library { return false; } + + _logger.Error("Operating system reports drive is not ready: {0}", args.Path); } return true; diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index ae0607689..c82ebad51 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -405,6 +405,7 @@ namespace MediaBrowser.Server.Implementations.Library if (!fileInfo.Exists) { + _logger.Error("Path in library does not exist or is unavailable: " + path); return null; } @@ -437,8 +438,10 @@ namespace MediaBrowser.Server.Implementations.Library { var paths = args.FileSystemDictionary.Keys.ToList(); - foreach (var subPath in paths.Where(subPath => paths.Any(i => subPath.StartsWith(i.TrimEnd(System.IO.Path.DirectorySeparatorChar) + System.IO.Path.DirectorySeparatorChar, StringComparison.OrdinalIgnoreCase)))) + foreach (var subPath in paths + .Where(subPath => !subPath.EndsWith(":\\", StringComparison.OrdinalIgnoreCase) && paths.Any(i => subPath.StartsWith(i.TrimEnd(Path.DirectorySeparatorChar) + Path.DirectorySeparatorChar, StringComparison.OrdinalIgnoreCase)))) { + _logger.Info("Ignoring duplicate path: {0}", subPath); args.FileSystemDictionary.Remove(subPath); } }