System.IO.Path.GetDirectoryName使路径无效

时间:2013-11-03 20:47:13

标签: c# .net

我正在尝试执行一个与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

3 个答案:

答案 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。