diff options
| -rw-r--r-- | MediaBrowser.Common/Extensions/BaseExtensions.cs | 13 | ||||
| -rw-r--r-- | MediaBrowser.Controller/IO/DirectoryWatchers.cs | 2 |
2 files changed, 12 insertions, 3 deletions
diff --git a/MediaBrowser.Common/Extensions/BaseExtensions.cs b/MediaBrowser.Common/Extensions/BaseExtensions.cs index 89cfbecad..ceb008629 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<string> lst, string value)
+ /// <summary>
+ /// Examine a list of strings assumed to be file paths to see if it contains a parent of
+ /// the provided path.
+ /// </summary>
+ /// <param name="lst"></param>
+ /// <param name="path"></param>
+ /// <returns></returns>
+ public static bool ContainsParentFolder(this List<string> 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 91f74e677..8243c8174 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);
}
|
