"A generic error occurred in GDI+" 保存 PictureBox 图像时

"A generic error occurred in GDI+" when saving a PictureBox Image

我开发了一个 WinForms 应用程序,它在 Windows 8.1 下可以正常工作,但是当我尝试在 Windows 7(32 位)上 运行 它时,它会抛出一个错误:

A generic error occurred in GDI+

错误源于对下面 Save 的调用:

PictureBox p1 = (PictureBox)tableLayoutPanel1.Controls[i];
p1.Image.Save(
    @path
        + @"\" 
        + DateTime.Now.ToString("dd/MM/yyyy-hh.mm.ss")
        + i
        + ".jpeg", 
    System.Drawing.Imaging.ImageFormat.Jpeg);

对错误的原因有什么想法吗?

文件名中的正斜杠似乎是问题所在。我用句点替换了它们并能够保存文件。 (请注意,在任何情况下,您都需要对 "C:\car rental\" 目录具有适当的权限。)

根据this article,正斜杠是文件名中不允许使用的保留字符。摘录:

The following reserved characters:

< (less than)
> (greater than)
: (colon)
" (double quote)
/ (forward slash)
\ (backslash)
| (vertical bar or pipe)
? (question mark)
* (asterisk)

此问题是由于在 C 驱动器上写入图像而引起的。这实际上是一个权限问题。

请注意:

  1. 您不能直接在 C 盘上写入。
  2. 您必须创建一个文件夹并取消选中只读复选框。

应用并保存。 如果还有问题,请告诉我。