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)
{
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;
}

View file

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