Need to be more intelligent finding paths we're already watching

This commit is contained in:
ebr11 Eric Reed spam 2012-09-18 07:22:49 -04:00
parent 8b548fff38
commit e5b5861abf
2 changed files with 12 additions and 3 deletions

View file

@ -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) 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; return false;
} }

View file

@ -30,7 +30,7 @@ namespace MediaBrowser.Controller.IO
{ {
foreach (string path in folder.PhysicalLocations) foreach (string path in folder.PhysicalLocations)
{ {
if (Path.IsPathRooted(path) && !pathsToWatch.ContainsStartsWith(path)) if (Path.IsPathRooted(path) && !pathsToWatch.ContainsParentFolder(path))
{ {
pathsToWatch.Add(path); pathsToWatch.Add(path);
} }