aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server.Implementations/Trickplay
diff options
context:
space:
mode:
authortheguymadmax <theguymadmax@proton.me>2025-06-05 17:57:31 -0400
committerGitHub <noreply@github.com>2025-06-05 15:57:31 -0600
commit5ac0260e5f23ecaa7533bd5e874c559c2a64ce4c (patch)
treeb9de9efe5c8aa1215685ea945e1ad1cf20825ae5 /Jellyfin.Server.Implementations/Trickplay
parent88332e89c458266bc073d3304eafcb23603f15fa (diff)
Fix DirectoryNotFoundException for backdrop folders in trickplay (#14223)
Diffstat (limited to 'Jellyfin.Server.Implementations/Trickplay')
-rw-r--r--Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs35
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);
+ }
}
}
}