C#:保存图像错误

时间:2015-04-26 16:32:18

标签: c# image drawing

我正在尝试保存新图片,但是C#给我一个错误,如下图enter image description here

错误参考以下代码

string oldfilename = valid.getStringBeforeAnyChar(fi.Name, '.'); //"1"
string newfilename = FolderDir + "\\" + subfolderoutput + "\\" + oldfilename + Copyright + fi.Extension;
//"C:\\Users\\RHIT ! Solution\\Desktop\\direktori\\Output\\1[Watermarked by : RHIT Watermarker ].png"
try
{
    imgPhoto.Save(newfilename, ImageFormat.Jpeg); // <-- error here
    imgPhoto.Dispose();
    imgWatermark.Dispose();
}
catch (Exception e)
{
    MessageBox.Show(e.ToString());
}

我哪里出错了?怎么解决这个?我不知道创建新文件可能是output文件夹限制

2 个答案:

答案 0 :(得分:0)

newFileName几乎肯定有问题。您可以在调试器中查看此值,以查看可能与预期文件名相关的内容。路径。

作为一般建议,最好将目录和文件名合并到使用Path.Combine()的路径中,该路径可以排除许多潜在问题,例如双重或缺少'\'。

答案 1 :(得分:0)

Windows文件路径不支持冒号(:)字符,还支持其他几个文件名:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx#naming_conventions

总结;无效字符是:

  1. <(小于)
  2. >(大于)
  3. :(冒号)
  4. "(双引号)
  5. /(正斜杠)
  6. \(反斜杠)
  7. |(垂直条或竖线)
  8. ?(问号)
  9. *(星号)
  10. 反斜杠(\)字符只有在用作文件夹/目录分隔符时才会出现。