diff options
| author | Tim Eisele <Ghost_of_Stone@web.de> | 2025-06-12 01:31:14 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-11 17:31:14 -0600 |
| commit | c22f24319bdfac814fc73fe61713a088b2b9f108 (patch) | |
| tree | ee94acbbce7c4bc4f994ece855638927cfd9523a /Emby.Server.Implementations | |
| parent | 1c4c9cf733ce84a2b7a70a186f4412198951a271 (diff) | |
Properly handle file access issues in some cases (#14272)
Diffstat (limited to 'Emby.Server.Implementations')
| -rw-r--r-- | Emby.Server.Implementations/Library/ExternalDataManager.cs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/Emby.Server.Implementations/Library/ExternalDataManager.cs b/Emby.Server.Implementations/Library/ExternalDataManager.cs index 68e3aaff4..d3cfa1d25 100644 --- a/Emby.Server.Implementations/Library/ExternalDataManager.cs +++ b/Emby.Server.Implementations/Library/ExternalDataManager.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Linq; using System.Threading; @@ -6,6 +7,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.MediaSegments; using MediaBrowser.Controller.Trickplay; +using Microsoft.Extensions.Logging; namespace Emby.Server.Implementations.Library; @@ -18,6 +20,7 @@ public class ExternalDataManager : IExternalDataManager private readonly IMediaSegmentManager _mediaSegmentManager; private readonly IPathManager _pathManager; private readonly ITrickplayManager _trickplayManager; + private readonly ILogger<ExternalDataManager> _logger; /// <summary> /// Initializes a new instance of the <see cref="ExternalDataManager"/> class. @@ -26,16 +29,19 @@ public class ExternalDataManager : IExternalDataManager /// <param name="mediaSegmentManager">The media segment manager.</param> /// <param name="pathManager">The path manager.</param> /// <param name="trickplayManager">The trickplay manager.</param> + /// <param name="logger">The logger.</param> public ExternalDataManager( IKeyframeManager keyframeManager, IMediaSegmentManager mediaSegmentManager, IPathManager pathManager, - ITrickplayManager trickplayManager) + ITrickplayManager trickplayManager, + ILogger<ExternalDataManager> logger) { _keyframeManager = keyframeManager; _mediaSegmentManager = mediaSegmentManager; _pathManager = pathManager; _trickplayManager = trickplayManager; + _logger = logger; } /// <inheritdoc/> @@ -47,7 +53,14 @@ public class ExternalDataManager : IExternalDataManager { foreach (var path in validPaths) { - Directory.Delete(path, true); + try + { + Directory.Delete(path, true); + } + catch (Exception ex) + { + _logger.LogWarning("Unable to prune external item data at {Path}: {Exception}", path, ex); + } } } |
