diff options
| author | ebr11 Eric Reed spam <ebr11 Eric Reed spam@reedsplace.com> | 2012-09-18 07:22:49 -0400 |
|---|---|---|
| committer | ebr11 Eric Reed spam <ebr11 Eric Reed spam@reedsplace.com> | 2012-09-18 07:22:49 -0400 |
| commit | e5b5861abf1ebd940e9b369de3cd3ab0432338c5 (patch) | |
| tree | 1ed10e15a5e2097faf4d315181dd8460e5e7b28a | |
| parent | 8b548fff38641e0de6ea2870a5d37c6bc76a6a90 (diff) | |
Need to be more intelligent finding paths we're already watching
| -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);
}
|
