我正在尝试执行一个与main exe位于同一目录下的tool-exe。 为此,我试图首先使用Assembly.GetExecutingAssembly获取进程的exe-name,然后使用IO.Path.GetDirectoryName获取目录
//1
String exePath = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;
//2
String ncpath = System.IO.Path.GetDirectoryName(exePath);
1返回“file:/// C:/Development/RC_trunk/bin/Release/ResultConfirmation.EXE” 这是一个URI。不完全是我需要的,但还可以。
2返回“file:\ C:\ Development \ RC_trunk \ bin \ Release”这似乎是一个简单的[/] +到\替换。
我的问题使用了错误的API吗?
P.S。 IDE是VS2008
答案 0 :(得分:2)
要获取应用程序目录,请尝试AppDomain.CurrentDomain.BaseDirectory
。
请查看Best way to get application folder path以了解访问该目录的其他方法。
答案 1 :(得分:1)
使用此代替步骤1)
string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
答案 2 :(得分:1)
您需要使用GetExecutingAssembly.Location:
System.Reflection.Assembly.GetExecutingAssembly().Location
而不是CodeBase,然后使用GetDirectoryName。