Преглед на файлове

Merge pull request #8521 from 1337joe/fix-missing-symlink-scan

Skip missing symlink instead of breaking out of directory scan
Claus Vium преди 2 години
родител
ревизия
263a1663ae
променени са 2 файла, в които са добавени 6 реда и са изтрити 7 реда
  1. 1 5
      Emby.Server.Implementations/Library/LibraryManager.cs
  2. 5 2
      Emby.Server.Implementations/Library/ResolverHelper.cs

+ 1 - 5
Emby.Server.Implementations/Library/LibraryManager.cs

@@ -665,11 +665,7 @@ namespace Emby.Server.Implementations.Library
                     if (result?.Items.Count > 0)
                     {
                         var items = result.Items;
-                        foreach (var item in items)
-                        {
-                            ResolverHelper.SetInitialItemValues(item, parent, this, directoryService);
-                        }
-
+                        items.RemoveAll(item => !ResolverHelper.SetInitialItemValues(item, parent, this, directoryService));
                         items.AddRange(ResolveFileList(result.ExtraFiles, directoryService, parent, collectionType, resolvers, libraryOptions));
                         return items;
                     }

+ 5 - 2
Emby.Server.Implementations/Library/ResolverHelper.cs

@@ -20,8 +20,9 @@ namespace Emby.Server.Implementations.Library
         /// <param name="parent">The parent.</param>
         /// <param name="libraryManager">The library manager.</param>
         /// <param name="directoryService">The directory service.</param>
+        /// <returns>True if initializing was successful.</returns>
         /// <exception cref="ArgumentException">Item must have a path.</exception>
-        public static void SetInitialItemValues(BaseItem item, Folder? parent, ILibraryManager libraryManager, IDirectoryService directoryService)
+        public static bool SetInitialItemValues(BaseItem item, Folder? parent, ILibraryManager libraryManager, IDirectoryService directoryService)
         {
             // This version of the below method has no ItemResolveArgs, so we have to require the path already being set
             if (string.IsNullOrEmpty(item.Path))
@@ -44,12 +45,14 @@ namespace Emby.Server.Implementations.Library
             var fileInfo = directoryService.GetFile(item.Path);
             if (fileInfo == null)
             {
-                throw new FileNotFoundException("Can't find item path.", item.Path);
+                return false;
             }
 
             SetDateCreated(item, fileInfo);
 
             EnsureName(item, fileInfo);
+
+            return true;
         }
 
         /// <summary>