aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Common/Extensions/BaseExtensions.cs13
-rw-r--r--MediaBrowser.Controller/IO/DirectoryWatchers.cs2
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);
}