C# Save方法不会产生任何结果
我的目标是将base64字符串转换为图像并保存到磁盘。我有以下代码(主要来自SO答案)-C# Save方法不会产生任何结果,c#,.net,C#,.net,我的目标是将base64字符串转换为图像并保存到磁盘。我有以下代码(主要来自SO答案)- 我在MS Visual Studio 2010 Ultimate(Windows 8.1 Pro x64)上运行了它,没有出现错误,但在C驱动器中找不到该图像文件。我哪里出错了?请尝试以以下方式保存您的文件: File.WriteAllBytes(@"c:\img.gif", bytes); 编辑 无论如何,请将您的代码置于try'n'catch下,以更好地理解文件未保存的原因。尝试将LoadImage更
我在MS Visual Studio 2010 Ultimate(Windows 8.1 Pro x64)上运行了它,没有出现错误,但在C驱动器中找不到该图像文件。我哪里出错了?请尝试以以下方式保存您的文件:
File.WriteAllBytes(@"c:\img.gif", bytes);
编辑
无论如何,请将您的代码置于try'n'catch下,以更好地理解文件未保存的原因。尝试将LoadImage更新为该文件,以找出错误所在,并在MessageBox上设置调试点,以检查发生的全部细节
public static void LoadImage()
{
try
{
//get a temp image from bytes, instead of loading from disk
//data:image/gif;base64,
//this image is a single pixel (black)
byte[] bytes = Convert.FromBase64String("R0lGODlhAQABAIAAAAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw==");
Image image;
Bitmap bimage;
using (MemoryStream ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}
bimage = new Bitmap(image);
bimage.Save("c:\\img.gif", System.Drawing.Imaging.ImageFormat.Gif);
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
你确定?它在这里工作,我得到了图像。如果你使用一个你肯定有无限制写入权限的不同路径(例如,你的文档文件夹),会发生什么情况?@Damien_the_unsiever,如果代码没有访问路径的权限,那么它将抛出一个异常。可能在保存周围放置一个try/catch,然后查看是否有弹出的内容。您是否考虑过拥有正确的写入权限?OP的代码显然“运行时没有问题”,因此没有要检查的异常。
public static void LoadImage()
{
try
{
//get a temp image from bytes, instead of loading from disk
//data:image/gif;base64,
//this image is a single pixel (black)
byte[] bytes = Convert.FromBase64String("R0lGODlhAQABAIAAAAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw==");
Image image;
Bitmap bimage;
using (MemoryStream ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}
bimage = new Bitmap(image);
bimage.Save("c:\\img.gif", System.Drawing.Imaging.ImageFormat.Gif);
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}