GDI +,PNG图像到UNC发生了一般性错误

时间:2011-01-05 19:56:29

标签: c# image gdi save

Ussualy我不会在论坛上写东西只是阅读我需要的信息。 这次我遇到了大问题,需要专家的帮助。

我想将图片从PictureBox保存到文件。

我使用

时有效
Image.Save("X:\\Files\\logo.png");

但我需要将图像保存到UNC位置。 所以从 X:\ Files

创建了UNC

当我尝试将图像保存为

Image.Save("\\\\\PC\\Files\\logo.png");

我没有任何信息就得到了愚蠢的GDI +错误..

我尝试使用MemoryStream保存它并且没有解决任何问题。 我正在尝试4小时而没有成功..

如果我将netvork驱动器 \\ PC \ files 映射到驱动器号,请说 L:\ 然后将图像保存为

Image.Save("L:\\logo.png"); // it works !

好的,你和男孩在一起的是什么?再次..

Image.Save("X:\\Files\\logo.png");          // WORKS
Image.Save("\\\\PC\\Files\\logo.png");    // GDI+ ERROR
Image.Save("L:\\logo.png");  // DOES THE JOB (it is network drive from \\pc\files)

好的,现在你会问我在Shared文件夹上创建了什么。 我添加了用户所有人并设置了写,读和执行权限。

问题是,实际上我想将图像保存到NAS驱动器,所以我不确定它拥有什么Sabma安全权限(每个人,访客,不知道)或换句话说它不像点击共享那么简单文件夹并使用权限播放..

如何解决这个错误的实施?我尝试了Image.Clone(),MemoryStrean以及我在谷歌叔叔身上发现的所有东西,但是没有任何工作我认为这个问题不在无法访问的图像中,但它与UNC位置的权限有关但只是不知道如果我创建没有特殊用户登录的网络驱动器,它为什么会工作..我只是不能说客户创建网络驱动器它必须使用UNC路径!

3 个答案:

答案 0 :(得分:0)

我会说你错了你的反斜杠 - 应该是4,而不是5.尝试:

Image.Save("\\\\PC\\Files\\logo.png");

答案 1 :(得分:0)

谢谢Mark的评论..我没有5个反斜杠,但我做了一些更愚蠢的事......

TextBox1.Text = "\\\\\\\\PC\\Files"; // through GUI I add "\\\\PC\Files"

然后

string path = TextBox1.Text;    
Image.Save(path + "\\" filename");

你可以看到路径中的字符串是“\\\\ PC \ Files”!错误! :=) 它必须是\\所以解决方案是

TextBox1.Text="\\\\PC\\Files"; // or if I add this string by GUI "\\PC\Files"

然后我的愚蠢输入跟在文本框中。

if (path.StartsWith("\\\\\\\\") || path.Contains(":"))
{
   // Problem was that in TextBox were really 4 backslashes so it jumps here
   image.Save(path,ImageFormat.Png); 
   // and because string started as "\\\\" it throws GDI+ error
}
else
{
   string path2= Directory.GetCurrentDirectory()+"\\"+path;
   image.Save(path2, System.Drawing.Imaging.ImageFormat.Png);
}

是的我是白痴:=)

我确实修复了它应该是这样的方式:=) 我很抱歉我发送了stackoverflow垃圾邮件。

答案 2 :(得分:0)

我认为这不是代码问题,这是由于安装了组件,我也遇到了同样的问题,并且在上传到普通服务器后自行解决。

相关问题