我正在尝试使用:
创建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");
但收到同样的错误。
答案 0 :(得分:2)
它将查找相对于正在执行的程序集的文件。在构建项目时,它可能会输出到bin\debug
或bin\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");
我建议您将文件移动到输出文件夹,而不是将它们存储在项目中。因为通常你只分发输出文件夹而不是你的整个项目(当然除非它是开源的。)