System.Drawing.dll中发生'System.OutOfMemoryException'

时间:2014-12-28 11:20:14

标签: asp.net winforms memory

任何人都可以告诉我下面的代码有什么问题我没有兴趣搞清楚这一点。我正在处理并拥有一个使用块,但一直得到这个异常

  

类型' System.OutOfMemoryException'未处理的例外情况发生在System.Drawing.dll

     

其他信息:内存不足。

foreach (FileInfo file in files)
{
    Regex re = new Regex("original", RegexOptions.IgnoreCase);
    if (re.IsMatch(file.FullName)) continue;

    using (System.Drawing.Image img = System.Drawing.Image.FromFile(file.FullName))
    {
        if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg))
        {
            filesJpeg.Add(file);
            img.Dispose();
        }
        else
        {
            img.Dispose();
            File.Delete(file.FullName);
        }

        img.Dispose();
    }
}

1 个答案:

答案 0 :(得分:1)

打开图片时OutOfMemoryException可能不一定意味着内存不足。这可能意味着图像格式未知,或GDI +不支持。

根据文档(在http://msdn.microsoft.com/en-us/library/stf701f5.aspx上):

  

<强>异常

     

OutOfMemoryException异常

     

<强>条件

     

该文件没有有效的图片格式。

     

-OR -

     

GDI +不支持文件的像素格式。

我检查文件在哪里抛出异常,看看它是否有奇怪的格式