aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/IO
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-11-02 15:30:29 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-11-02 15:30:29 -0400
commited34b67f512b07ea2e97f8708811cc4150906f12 (patch)
treeb9abc36cc1a5868cb2f04e9b3d548b212a58aa0e /MediaBrowser.Server.Implementations/IO
parentab490d7467967c40435828bb4fc6c0066955930c (diff)
fix library scan stopping and restarting itself
Diffstat (limited to 'MediaBrowser.Server.Implementations/IO')
-rw-r--r--MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs28
1 files changed, 27 insertions, 1 deletions
diff --git a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs
index 330469877..748ba0df4 100644
--- a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs
+++ b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs
@@ -361,7 +361,33 @@ namespace MediaBrowser.Server.Implementations.IO
if (e.ChangeType == WatcherChangeTypes.Changed)
{
// If the parent of an ignored path has a change event, ignore that too
- if (tempIgnorePaths.Any(i => string.Equals(Path.GetDirectoryName(i), e.FullPath, StringComparison.OrdinalIgnoreCase) || string.Equals(i, e.FullPath, StringComparison.OrdinalIgnoreCase)))
+ if (tempIgnorePaths.Any(i =>
+ {
+ if (string.Equals(i, e.FullPath, StringComparison.OrdinalIgnoreCase))
+ {
+ return true;
+ }
+
+ // 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;
+ }
+ }
+
+ return false;
+
+ }))
{
return;
}