diff --git a/MediaBrowser.Common/Extensions/BaseExtensions.cs b/MediaBrowser.Common/Extensions/BaseExtensions.cs index 89cfbecad2..ceb008629c 100644 --- a/MediaBrowser.Common/Extensions/BaseExtensions.cs +++ b/MediaBrowser.Common/Extensions/BaseExtensions.cs @@ -19,11 +19,20 @@ namespace MediaBrowser.Common.Extensions } } - public static bool ContainsStartsWith(this List lst, string value) + /// + /// Examine a list of strings assumed to be file paths to see if it contains a parent of + /// the provided path. + /// + /// + /// + /// + public static bool ContainsParentFolder(this List lst, string path) { foreach (var str in lst) { - if (str.StartsWith(value, StringComparison.OrdinalIgnoreCase)) return true; + //this should be a little quicker than examining each actual parent folder... + if (path.Equals(str,StringComparison.OrdinalIgnoreCase) + || (path.StartsWith(str, StringComparison.OrdinalIgnoreCase) && path[str.Length-1] == '\\')) return true; } return false; } diff --git a/MediaBrowser.Controller/IO/DirectoryWatchers.cs b/MediaBrowser.Controller/IO/DirectoryWatchers.cs index 91f74e6777..8243c8174a 100644 --- a/MediaBrowser.Controller/IO/DirectoryWatchers.cs +++ b/MediaBrowser.Controller/IO/DirectoryWatchers.cs @@ -30,7 +30,7 @@ namespace MediaBrowser.Controller.IO { foreach (string path in folder.PhysicalLocations) { - if (Path.IsPathRooted(path) && !pathsToWatch.ContainsStartsWith(path)) + if (Path.IsPathRooted(path) && !pathsToWatch.ContainsParentFolder(path)) { pathsToWatch.Add(path); }