创建位图时的相对路径

时间:2015-01-27 01:44:34

标签: c# wpf bitmap relative-path

我正在尝试使用:

创建Bitmap
bitmap = new Bitmap(@"Movies\View\Images\missing_person.bmp"); 

但是,我收到System.ArgumentException错误。

我正在调用上述代码的文件位于:

MyProj\DisplaySideBarCommand.cs          

图片位于:

MyProj\Movies\View\Images\missing_person.bmp

我也尝试过使用:

bitmap = new Bitmap(@"..\Movies\View\Images\missing_person.bmp"); 

但收到同样的错误。

3 个答案:

答案 0 :(得分:2)

它将查找相对于正在执行的程序集的文件。在构建项目时,它可能会输出到bin\debugbin\release这样的目录。您可以从那里构建回溯路径,也可以将文件复制到输出目录。

如果您对文件的构建操作设置为Content,它们将被复制到构建的输出目录(包括子文件夹),然后您应该能够从那里构建正确的相对路径。 / p>

答案 1 :(得分:0)

如果您使用的是默认设置,则调试二进制文件将位于ProjectDirectory\bin\Debug\中 - 因此,您可能需要尝试@"..\..\Movies\View\Images\missing_person.bmp"

答案 2 :(得分:0)

这是因为图像位于项目文件夹中,而不是输出文件夹中。

string projectFolder = "..\\..\\"; // Goes back to the project folder

一旦你获得了projec路径,就这样使用它:

bitmap = new Bitmap(projectFolder + @"Movies\View\Images\missing_person.bmp");

我建议您将文件移动到输出文件夹,而不是将它们存储在项目中。因为通常你只分发输出文件夹而不是你的整个项目(当然除非它是开源的。)