【发布时间】:2014-09-06 00:16:48
【问题描述】:
我在 Windows 窗体解决方案中有一个图片框图像。用户从数据库中选择一个项目后,我想将图像加载到这个图片框中。图像的文件名将来自数据库,所有图像必须存储在应用程序文件夹 (\Images) 的子文件夹中。 我不想在我的解决方案中包含所有这些(2000-3000 张图像),此外,随着数据库的增长,用户将添加更多图像。 另外,我不想编写绝对路径。所以这不是我想要的:
pictureBox.Image = Image.FromFile(@"C:\Program Files\Application\Images\" + dbase.filename);
我想编写一个图像文件夹的相对路径,因此无论应用程序安装在哪里,都可以从这个特定的子文件夹加载图像。 我已经尝试过这样的事情,使用名为“test.jpg”的临时测试图像:
pictureBox.Image = Image.FromFile(@"Images\test.jpg");
pictureBox.Image = Image.FromFile(@"..\Images\test.jpg");
pictureBox.Image = Image.FromFile(@"|DataDirectory|\Images\test.jpg");
但是这些不起作用。我只能让它使用绝对路径,例如“C:\Images\test.jpg”。我该怎么办?
【问题讨论】:
-
问题是当前目录不是你所期望的。输入
MsgBox(Environment.CurrentDirectory)看看它到底是什么。 -
感谢您指出这一点,罗斯。看起来 CurrentDirectory 是 ..\bin\Debug。当我将图像文件夹放入其中并使用pictureBox.Load(“./Images/test.jpg”)运行我的代码时,它就可以工作了。但是,当我发布我的项目并安装它时,无论我将它放在应用程序文件夹中的哪个位置,它都找不到图像文件夹。 CurrentDirectory 然后指向 C:\Users\AppData\Local\Apps\etc 的一些抽象子文件夹。
标签: c# image path picturebox