如何给出每个机器都通用的路径(这样应用程序就会崩溃)

本文关键字:路径 应用程序 崩溃 机器 | 更新日期: 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。组合添加子文件夹(必须确保文件夹存在或创建)或文件名。