Image.FromFile 将打开一个路径,但不会打开包含相同路径的字符串

本文关键字:路径 包含相 字符串 将打开 FromFile 一个 Image | 更新日期: 2023-09-27 18:20:07

// The following line works.
imagebox.Image = Image.FromFile("C:/Users/Admin/Desktop/apps/pic1.png");
// The following line does not work.
imagebox.Image = Image.FromFile(imgPath);
// the test Text Box displays "C:/Users/Admin/Desktop/apps/pic1.png", exactly like in the first line
test.Text = imgPath;

当我单击应该更改图片框图像的按钮时,我收到一个错误,基本上是路径中的非法字符,并且 ArgumentException 未处理

很抱歉第一次没有这样做。

k 因此,实际文件名正在输入到文本框中。然后,我将该文本转换为字符串,并将其添加到乞求和结尾以创建完整的文件路径。

string path = "'"C:/Users/Admin/Desktop/apps/";
string ext1 = ".png'"";

ID = idBox.Text;
imgPath = path + ID + ext1;
try
{
    imagebox.Image = Image.FromFile(imgPath);
}
catch (System.IO.FileNotFoundException)
{
    MessageBox.Show("Invalid Student or Faculty ID.");
}

Image.FromFile 将打开一个路径,但不会打开包含相同路径的字符串

只是一个猜测,但如果文本框从字面上显示:

"C:/Users/Admin/Desktop/apps/pic1.png">

然后你的路径上有引号,这很糟糕。在代码中,使用引号来定义字符串,如果要从用户获取输入,则不需要引号。

这两行都应该可以正常工作,所以很明显,你的代码正在做的事情并不是你认为它正在做的事情。

我看到您使用文本框来检查变量的值?帮自己一个忙,学习:

  1. Diagnostics.Trace.WriteLine()

  2. 如何使用调试器。

(最重要的是调试器。然后,您将能够找出代码的问题所在。因为从您向我们展示的内容来看,不可能发现它有什么问题。

-

-哦,是的,下次你在这里发布一些告诉我们"它不起作用"的东西时,请告诉我们它以什么方式不起作用。 它默默地什么都不做吗?它会引发异常吗?它是否加载了您期望的图像以外的图像?它会崩溃和燃烧吗?这有点必不可少。

你的斜杠是错误的。尝试将其设置为逐字字符串,即:

@"C:''用户''管理员''桌面''应用程序''pic1.png">

更改路径,

string imgPath=@"c:'Users'Admin'Desktop'apps'pic1.png";

编辑:路径包含无效字符。

string path = @"C:'Users'Admin'Desktop'apps'";
string ext1 = ".png";
ID = idBox.Text;
imgPath = path + ID + ext1;
if(System.IO.File.Exists(imgPath))
   imagebox.Image = Image.FromFile(imgPath);