瀏覽代碼

Removing CollectionFolders from cache when they are deleted on disk. (#13315)

sinterdev 4 月之前
父節點
當前提交
ce64dbc034
共有 1 個文件被更改,包括 10 次插入2 次删除
  1. 10 2
      Emby.Server.Implementations/Library/LibraryManager.cs

+ 10 - 2
Emby.Server.Implementations/Library/LibraryManager.cs

@@ -1049,9 +1049,17 @@ namespace Emby.Server.Implementations.Library
                 cancellationToken: cancellationToken).ConfigureAwait(false);
 
             // Quickly scan CollectionFolders for changes
-            foreach (var folder in GetUserRootFolder().Children.OfType<Folder>())
+            foreach (var child in GetUserRootFolder().Children.OfType<Folder>())
             {
-                await folder.RefreshMetadata(cancellationToken).ConfigureAwait(false);
+                // If the user has somehow deleted the collection directory, remove the metadata from the database.
+                if (child is CollectionFolder collectionFolder && !Directory.Exists(collectionFolder.Path))
+                {
+                    _itemRepository.DeleteItem(collectionFolder.Id);
+                }
+                else
+                {
+                    await child.RefreshMetadata(cancellationToken).ConfigureAwait(false);
+                }
             }
         }