如何从C#中的特定目录加载图像?

时间:2011-03-31 16:15:52

标签: c# winforms

我想从目录“../ MyAppFolder / Logos”加载图片。

我的代码:

 Bitmap bmp = new Bitmap(@"/Logos/bitmap.bmp");
 pictureBox1.Image = bmp;

此代码不起作用。当我使用(@“/ Bitmapx.bmp”)它可以工作,但是当我想从更深的目录加载图像时,我收到一条错误消息。

我做错了什么?

3 个答案:

答案 0 :(得分:5)

前导斜杠以当前驱动器根为目标。使用realative路径......

Bitmap bmp = new Bitmap(@"Logos/bitmap.bmp"); 

..或许多Path.方法之一来解析您想要的完整路径。

是的,我知道上面的例子针对当前的工作路径...这就是我添加上述评论的原因。对于毫无意义的downvoter,您可能希望了解当前版本的Windows不关心您使用哪种斜杠。

答案 1 :(得分:3)

试试这个:

string myLogo = System.IO.Path.Combine(Application.StartupPath, @"Logos\bitmap.bmp");
Bitmap bmp = new Bitmap(myLogo);
pictureBox1.Image = bmp;

确保您的Logos文件夹位于应用程序根文件夹中。

答案 2 :(得分:3)

路径的第一个字符是/,它使此路径相对于当前工作目录所在的驱动器的根级别。但是你可能想要一个相对路径,所以只需删除最初的/

更重要的是,相对路径是相对于工作目录的。但工作目录不一定是应用程序目录。例如,如果您在可以更改工作目录的文件对话框中导航。

如果我是你,我可能会在app目录中预先添加路径并使其成为一个完全指定的绝对路径,就像HABJAN建议的那样。