可能重复:
Getting the application's directory from a WPF application
我想从项目目录中获取文件,就像在java中一样,而不使用“C:\ Path”,因为它在我的图片框中创建了文件异常,这是我的计时器中的代码
if (imagecount == 30)
{
this.pictureBox1.Image = System.Drawing.Image.FromFile(@"C:\Users\Baloi\Documents\visual studio 2010\Projects\WinEX\WinEX\" + image() + ".jpg");
imagecount = 0;
}
else if (imagecount < 30)
imagecount++;
答案 0 :(得分:2)
string baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
string executableDirectory = Path.GetDirectoryName(Application.ExecutablePath);
根据您的要求,您可以使用上述Path.Combine之一,并构建图片位置的完整路径。
或者您可以将图像嵌入资源文件中。然后你可以加载它们
Stream imgStream =
Assembly.GetExecutingAssembly().GetManifestResourceStream(
"YourNamespace.resources.ImageName.bmp");
pictureBox.Image = new Bitmap(imgStream);
答案 1 :(得分:0)
您可以使用以下代码:
this.pictureBox1.Image = System.Drawing.Image.FromFile(image() + ".jpg");
您的文件应与程序位于同一文件夹中。
答案 2 :(得分:0)
您有几个选择:
将图片嵌入项目中(将编译操作设置为嵌入数据)
使用相对路径引用图片。由于在调试时二进制程序集位于bin \ Debug文件夹中
对于选项1:
System.Reflection.Assembly thisExe;
thisExe = System.Reflection.Assembly.GetExecutingAssembly();
System.IO.Stream file =
thisExe.GetManifestResourceStream("AssemblyName.ImageFile.jpg");
this.pictureBox1.Image = Image.FromStream(file);
http://msdn.microsoft.com/en-us/library/aa287676(v=vs.71).aspx
对于选项2:
string appPath = Path.GetDirectoryName(Application.ExecutablePath);
if (System.Diagnostics.Debugger.IsAttached)
{
contentDirectory = Path.Combine(appPath + @"\..\..\content");
}
else
{
contentDirectory = Path.Combine(appPath, @"content");
}