C# 使用带有相对路径的OpenFileDialog作为初始目录

C# 使用带有相对路径的OpenFileDialog作为初始目录,c#,directory,relative-path,openfiledialog,C#,Directory,Relative Path,Openfiledialog,我想给initialdirectory赋予适当的值,这样它就会打开我在项目中创建的文件夹(称为“Images”)。 我必须使用相对路径,这样我的程序就不依赖于我工作的计算机。 但问题是我不知道如何访问这个文件夹 有人知道如何解决这个问题吗?使用: openFileDialog.InitialDirectory = Path.Combine(Application.StartupPath, @"YourSubDirectoryName"); 编辑:或者,如果您愿意,请尝试此操作。。。你在wind

我想给initialdirectory赋予适当的值,这样它就会打开我在项目中创建的文件夹(称为“Images”)。 我必须使用相对路径,这样我的程序就不依赖于我工作的计算机。 但问题是我不知道如何访问这个文件夹

有人知道如何解决这个问题吗?

使用:

openFileDialog.InitialDirectory = Path.Combine(Application.StartupPath,
@"YourSubDirectoryName");
编辑:或者,如果您愿意,请尝试此操作。。。你在windows窗体中吗

openFileDialog.InitialDirectory = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Application.ExecutablePath), @"YourSubDirectoryName");
为WPF编辑2:

string path = System.Reflection.Assembly.GetExecutingAssembly().Location;

。。。从Microsoft论坛…

我的应用程序没有任何StartupPath…:/(这是一个wpf应用程序,我实际上在寻找在wpf中提供startupPath的东西)事实上,我不确定这是我需要的,因为我想使用资源文件夹中的文件。我已经使用了这种路径:/myProject;组件/布拉布拉,但我不记得它是如何工作的。。。你知道我的意思吗?然后决定你需要什么并编辑你的问题:-)如果文件系统中的文件位于应用程序文件夹的子文件夹中,你可以使用我建议的方法,如果这些文件是嵌入在.exe文件中的资源,你需要用完全不同的方法从那里加载资源;-)GetDirectoryName+Assembly.GetEntryAssembly是最好的。