2013-04-25 95 views
0

我的问题是,这try只有一台计算机失败(导致捕获),即使使用相同的用户帐户。它运行良好,并保存了使用该程序的其他所有计算机的屏幕截图。FileIOPermission错误保存文件

此外,手动将文件(通过资源管理器)保存到目录中。

try 
{ 
    Bitmap screenShot = new Bitmap(screenWidth, screenHeight); 
    Graphics gfx = Graphics.FromImage((Image)screenShot); 
    gfx.CopyFromScreen(0, 0, 0, 0, new Size(screenWidth, screenHeight)); 

    imageSavePath = @"\\navy\data\Docs\PRE\LogSite\Screenshots\" + DateTime.Now.ToString().Replace('/', '-').Replace(':', '-') + ".png"; 
    screenShot.Save(imageSavePath, ImageFormat.Jpeg); 
} 
catch (Exception e) 
{ 
    MessageBox.Show("Error saving screenshot\n\n" + e.ToString()); 
} 

这是错误: Error Image

编辑:EXE是从网络驱动器

+0

而不是显示整个异常消息,显示图像路径。会更有用 – Sayse 2013-04-25 17:43:23

+0

在MessageBox中?事情是一直在其他计算机上工作,那么这怎么会成为一个问题呢? – kschieck 2013-04-25 17:48:31

+0

我认为应用程序可能没有写入文件夹的权限,您是否尝试以管理员身份运行? – Sayse 2013-04-25 17:49:11

回答

0

我有编辑我的答案运行。根据代码,您尝试保存到网络共享文件夹我相信您应该使用模拟来解决权限问题。

请参考下面的链接。

Need Impersonation when accessing shared network drive

+0

怎么样? FileIOPermission完全没有关系如何保存 – Sayse 2013-04-25 17:48:16

+0

对不起,我已经更新了我的答案。 – 2013-04-25 17:55:05

+0

这台计算机只有问题。运行相同代码的许多其他计算机(使用同一用户)工作正常。 – kschieck 2013-04-25 18:18:19