diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-11-04 11:20:44 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-11-04 11:20:44 -0500 |
| commit | f1a7d9064063d1cc73a0fe9ed3f1fd9b5f5b5f55 (patch) | |
| tree | 8a6025c4ab086da29aa9da6b24d81d9b8dd68c5d /MediaBrowser.Server.Implementations/IO | |
| parent | 4bbe8acb5cfc5c4a0c392db71d2858589c8f345f (diff) | |
fix scan stopping and restarting itself multiple times when adding/removing collections
Diffstat (limited to 'MediaBrowser.Server.Implementations/IO')
| -rw-r--r-- | MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs | 45 |
1 files changed, 21 insertions, 24 deletions
diff --git a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs index a9f83dfff..9fc622c21 100644 --- a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs +++ b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs @@ -358,39 +358,36 @@ namespace MediaBrowser.Server.Implementations.IO var tempIgnorePaths = _tempIgnoredPaths.Keys.ToList(); - if (e.ChangeType == WatcherChangeTypes.Changed) + // If the parent of an ignored path has a change event, ignore that too + if (tempIgnorePaths.Any(i => { - // If the parent of an ignored path has a change event, ignore that too - if (tempIgnorePaths.Any(i => + if (string.Equals(i, e.FullPath, StringComparison.OrdinalIgnoreCase)) { - if (string.Equals(i, e.FullPath, StringComparison.OrdinalIgnoreCase)) - { - return true; - } + return true; + } - // Go up a level - var parent = Path.GetDirectoryName(i); + // Go up a level + var parent = Path.GetDirectoryName(i); + if (string.Equals(parent, e.FullPath, StringComparison.OrdinalIgnoreCase)) + { + return true; + } + + // Go up another level + if (!string.IsNullOrEmpty(parent)) + { + parent = Path.GetDirectoryName(i); if (string.Equals(parent, e.FullPath, StringComparison.OrdinalIgnoreCase)) { return true; } + } - // Go up another level - if (!string.IsNullOrEmpty(parent)) - { - parent = Path.GetDirectoryName(i); - if (string.Equals(parent, e.FullPath, StringComparison.OrdinalIgnoreCase)) - { - return true; - } - } - - return false; + return false; - })) - { - return; - } + })) + { + return; } if (tempIgnorePaths.Contains(e.FullPath, StringComparer.OrdinalIgnoreCase)) |
