Browse Source

Minor update to DiskCache to prevent unauthorized permission issue over UNC share

Former-commit-id: 793a3372cb18ca44ba881c9510cb4de9d4a9eb5b
pull/17/head
Kenny Burns 12 years ago
committed by James South
parent
commit
95a99e208d
  1. 20
      src/ImageProcessor.Web/NET45/Caching/DiskCache.cs

20
src/ImageProcessor.Web/NET45/Caching/DiskCache.cs

@ -51,7 +51,7 @@ namespace ImageProcessor.Web.Caching
/// <summary> /// <summary>
/// The absolute path to virtual cache path on the server. /// The absolute path to virtual cache path on the server.
/// </summary> /// </summary>
private static readonly string AbsoluteCachePath = HostingEnvironment.MapPath(ImageProcessorConfig.Instance.VirtualCachePath); public static readonly string AbsoluteCachePath = HostingEnvironment.MapPath(ImageProcessorConfig.Instance.VirtualCachePath);
/// <summary> /// <summary>
/// The request for the image. /// The request for the image.
@ -229,7 +229,7 @@ namespace ImageProcessor.Web.Caching
DirectoryInfo parentDirectoryInfo = directoryInfo.Parent; DirectoryInfo parentDirectoryInfo = directoryInfo.Parent;
// ReSharper disable once PossibleNullReferenceException // ReSharper disable once PossibleNullReferenceException
foreach (DirectoryInfo enumerateDirectory in parentDirectoryInfo.EnumerateDirectories()) foreach (DirectoryInfo enumerateDirectory in SafeEnumerateDirectories(parentDirectoryInfo))
{ {
IEnumerable<FileInfo> files = enumerateDirectory.EnumerateFiles().OrderBy(f => f.CreationTimeUtc); IEnumerable<FileInfo> files = enumerateDirectory.EnumerateFiles().OrderBy(f => f.CreationTimeUtc);
int count = files.Count(); int count = files.Count();
@ -260,6 +260,22 @@ namespace ImageProcessor.Web.Caching
} }
} }
public static IEnumerable<DirectoryInfo> SafeEnumerateDirectories(DirectoryInfo directoryInfo)
{
IEnumerable<DirectoryInfo> directories;
try
{
directories = directoryInfo.EnumerateDirectories();
}
catch
{
return Enumerable.Empty<DirectoryInfo>();
}
return directories;
}
/// <summary> /// <summary>
/// Gets the full transformed cached path for the image. /// 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 /// The images are stored in paths that are based upon the sha1 of their full request path

Loading…
Cancel
Save