diff options
| author | theguymadmax <theguymadmax@proton.me> | 2025-06-05 17:57:31 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-05 15:57:31 -0600 |
| commit | 5ac0260e5f23ecaa7533bd5e874c559c2a64ce4c (patch) | |
| tree | b9de9efe5c8aa1215685ea945e1ad1cf20825ae5 /Jellyfin.Server.Implementations | |
| parent | 88332e89c458266bc073d3304eafcb23603f15fa (diff) | |
Fix DirectoryNotFoundException for backdrop folders in trickplay (#14223)
Diffstat (limited to 'Jellyfin.Server.Implementations')
| -rw-r--r-- | Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs b/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs index d7c2845a6..6f2d2a107 100644 --- a/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs +++ b/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs @@ -196,24 +196,27 @@ public class TrickplayManager : ITrickplayManager } // Cleanup old trickplay files - var existingFolders = Directory.GetDirectories(trickplayDirectory).ToList(); - var trickplayInfos = await dbContext.TrickplayInfos - .AsNoTracking() - .Where(i => i.ItemId.Equals(video.Id)) - .ToListAsync(cancellationToken) - .ConfigureAwait(false); - var expectedFolders = trickplayInfos.Select(i => GetTrickplayDirectory(video, i.TileWidth, i.TileHeight, i.Width, saveWithMedia)).ToList(); - var foldersToRemove = existingFolders.Except(expectedFolders); - foreach (var folder in foldersToRemove) + if (Directory.Exists(trickplayDirectory)) { - try - { - _logger.LogWarning("Pruning trickplay files for {Item}", video.Path); - Directory.Delete(folder, true); - } - catch (Exception ex) + var existingFolders = Directory.GetDirectories(trickplayDirectory).ToList(); + var trickplayInfos = await dbContext.TrickplayInfos + .AsNoTracking() + .Where(i => i.ItemId.Equals(video.Id)) + .ToListAsync(cancellationToken) + .ConfigureAwait(false); + var expectedFolders = trickplayInfos.Select(i => GetTrickplayDirectory(video, i.TileWidth, i.TileHeight, i.Width, saveWithMedia)).ToList(); + var foldersToRemove = existingFolders.Except(expectedFolders); + foreach (var folder in foldersToRemove) { - _logger.LogWarning("Unable to remove trickplay directory: {Directory}: {Exception}", folder, ex); + try + { + _logger.LogWarning("Pruning trickplay files for {Item}", video.Path); + Directory.Delete(folder, true); + } + catch (Exception ex) + { + _logger.LogWarning("Unable to remove trickplay directory: {Directory}: {Exception}", folder, ex); + } } } } |
