创建位图时的相对路径

Relative Path when creating Bitmap

我正在尝试创建 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"); 

但收到同样的错误。

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

它将查找与正在执行的程序集相关的文件。当您构建项目时,它可能会输出到 bin\debugbin\release 之类的目录。你可以建立你的相对路径从那里回溯,或者你可以将文件复制到输出目录。

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

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

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

获得项目路径后,只需像这样使用它:

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

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