diff --git a/src/ImageProcessor.Web/NET45/Caching/DiskCache.cs b/src/ImageProcessor.Web/NET45/Caching/DiskCache.cs index 7d4150f45..1cdcfcb2f 100644 --- a/src/ImageProcessor.Web/NET45/Caching/DiskCache.cs +++ b/src/ImageProcessor.Web/NET45/Caching/DiskCache.cs @@ -229,7 +229,7 @@ namespace ImageProcessor.Web.Caching DirectoryInfo parentDirectoryInfo = directoryInfo.Parent; // ReSharper disable once PossibleNullReferenceException - foreach (DirectoryInfo enumerateDirectory in parentDirectoryInfo.EnumerateDirectories()) + foreach (DirectoryInfo enumerateDirectory in SafeEnumerateDirectories(parentDirectoryInfo)) { IEnumerable files = enumerateDirectory.EnumerateFiles().OrderBy(f => f.CreationTimeUtc); int count = files.Count(); @@ -260,6 +260,22 @@ namespace ImageProcessor.Web.Caching } } + public static IEnumerable SafeEnumerateDirectories(DirectoryInfo directoryInfo) + { + IEnumerable directories; + + try + { + directories = directoryInfo.EnumerateDirectories(); + } + catch + { + return Enumerable.Empty(); + } + + return directories; + } + /// /// Gets the full transformed cached path for the image. /// The images are stored in paths that are based upon the sha1 of their full request path