如何给出每个机器都通用的路径(这样应用程序就会崩溃)
本文关键字:路径 应用程序 崩溃 机器 | 更新日期: 2023-09-27 17:50:31
我正在尝试捕获屏幕并将该图像保存到文件夹中,在我的本地机器上一切正常。我已经创建了一个设置并将其安装在另一台机器上,当我运行我的应用程序时,它说路径不正确。我如何解决这个代码下面显示了我如何保存图像和检索它
public void capture_screen()
{
Size s = Screen.PrimaryScreen.Bounds.Size;
Bitmap bmp = new Bitmap(s.Width, s.Height);
Graphics g = Graphics.FromImage(bmp);
g.CopyFromScreen(0, 0, 0, 90, s);
System.IO.Stream stream = new System.IO.MemoryStream();
bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
bmp.Save(@"C:'Users'XXXX'Documents'TESTs'MyImage.jpg");
stream.Position = 0;
pbScreenShots.SizeMode = PictureBoxSizeMode.StretchImage;
img =bmp;
pbScreenShots.Image = bmp;
}
如何更改此路径以使我的设置在任何机器上工作?
为什么不直接写入temp
文件夹:
bmp.Save(Path.GetTempPath());
你可以尝试特殊文件夹,但你可能需要确保你可以访问它
myDocsFilePath = Environment.SpecialFolder.MyDocuments
除此之外,您必须确保计算机在我的文档中有一个"测试"文件夹,并且"我的图像"不存在,因为您可能会覆盖有价值的图像。简而言之,您可能最好接受al-Khwārizmī的答案(+1!),然后提示用户选择自己的文件名和目的地,除非您需要在其他地方提供图片。
使用Environement.UserName
属性:
bmp.Save(string.Format(@"C:'Users'{0}'Documents'TESTs'MyImage.jpg", Environment.UserName));
使用environment . getfolderpath (Environment.SpecialFolder.MyDocuments)获取用户的"my document"文件夹,使用Path。组合添加子文件夹(必须确保文件夹存在或创建)或文件名。