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

如何从C#中的特定目录加载图像?,c#,winforms,C#,Winforms,我想从目录“./MyAppFolder/Logos”加载图像 我的代码: Bitmap bmp = new Bitmap(@"/Logos/bitmap.bmp"); pictureBox1.Image = bmp; 这个代码不起作用。当我使用(@“/bitmappx.bmp”)时,它可以工作,但当我想从更深的目录加载图像时,会收到一条错误消息 我做错了什么?前导斜杠指向当前驱动器根。使用实际路径 Bitmap bmp = new Bitmap(@"Logos/bitmap.bmp");

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

我的代码:

 Bitmap bmp = new Bitmap(@"/Logos/bitmap.bmp");
 pictureBox1.Image = bmp;
这个代码不起作用。当我使用(@“/bitmappx.bmp”)时,它可以工作,但当我想从更深的目录加载图像时,会收到一条错误消息


我做错了什么?

前导斜杠指向当前驱动器根。使用实际路径

Bitmap bmp = new Bitmap(@"Logos/bitmap.bmp"); 
..或许多
路径中的一个。
方法来解析所需的完整路径


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

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

Bitmap bmp = new Bitmap(@"Logos/bitmap.bmp"); 
..或许多
路径中的一个。
方法来解析所需的完整路径

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

尝试以下方法:

string myLogo = System.IO.Path.Combine(Application.StartupPath, @"Logos\bitmap.bmp");
Bitmap bmp = new Bitmap(myLogo);
pictureBox1.Image = bmp;
并确保您的徽标文件夹位于应用程序根文件夹中。

尝试以下操作:

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

确保徽标文件夹位于应用程序根文件夹中。

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

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


如果我是你,我可能会将路径与应用程序目录挂起,并使其成为完全指定的绝对路径,正如HABJAN建议的那样。

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

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



如果我是你,我可能会用app目录预先挂起该路径,并使其成为完全指定的绝对路径,正如HABJAN建议的那样。

那么问题是什么?再加上你的前斜杠可能是反斜杠。然后这样做;-)老实说,你有什么问题?你的问题是什么?您在这里什么都不要问。@Elfoc您仍然需要更好地定义“不起作用”。您收到了什么错误消息?这是异常还是编译错误?您尝试了哪些确切的文件夹,每次尝试都是“成功”还是“失败”?位图bmp=新位图(@“Logos\\logo.bmp”);正在工作!:)问题是什么?再加上你的前斜杠可能是反斜杠。然后这样做;-)老实说,你有什么问题?你的问题是什么?您在这里什么都不要问。@Elfoc您仍然需要更好地定义“不起作用”。您收到了什么错误消息?这是异常还是编译错误?您尝试了哪些确切的文件夹,每次尝试都是“成功”还是“失败”?位图bmp=新位图(@“Logos\\logo.bmp”);正在工作!:)这是他问的。。。虽然他可能想要./Logos/bitmap.bmp(斜线的方向也不重要),但这正是他所要求的。。。虽然他可能想要./Logos/bitmap.bmp(斜杠的方向并不重要),但错误:System.ArgumentException:路径中的非法字符。“我的徽标文件夹位于应用程序根文件夹中。@Elfoc:在运行第一行后,告诉我们myLogo包含哪些内容如何?请确保字符串部分(@“logos\bitmap.bmp”)中有1个\或如果有2个\则删除@。错误:System.ArgumentException:路径中有非法字符。“我的徽标文件夹在应用程序根文件夹中。@Elfoc:在运行第一行之后,告诉我们myLogo包含哪些内容如何?请确保字符串部分中有1\个(@“logos\bitmap.bmp”),或者如果有2个,则删除@。努力理解下一票。也许是因为某人不知道
/
在Windows上是一个完全合理的路径分隔符。@Matthew在.net问题上提供答案一直是一个有风险的行业,这可能是我的猜测。。。遗憾的是,有些人没有他们想象中的那么聪明。努力理解投票结果。也许是因为某人不知道
/
在Windows上是一个完全合理的路径分隔符。@Matthew在.net问题上提供答案一直是一个有风险的行业,这可能是我的猜测。。。遗憾的是,有些人没有他们想象的那么聪明。