如何获取应用程序的路径(没有app.exe)?

时间:2009-05-19 06:33:32

标签: c# windows-mobile compact-framework filepath

我希望获得我的应用程序的路径:“\\ ProgramFiles \\ myApp”,我尝试使用以下代码:


string path = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;

但它返回一条末尾有“\\ myapp.exe”的路径。

我也尝试过:


string path = System.IO.Directory.GetCurrentDirectory();

但它会抛出“NotSupportedException”。

有没有办法在最后获得没有.exe的路径?

7 个答案:

答案 0 :(得分:18)

Application.StartupPath应该为你做到这一点。

更新:从您编辑我发现您在Compact Framework上运行。然后Application.StartupPath将无法正常工作。这是我通常使用的构造:

private static string GetApplicationPath()
{
    return System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
}

答案 1 :(得分:10)

path = System.IO.Path.GetDirectoryName( path );

答案 2 :(得分:3)

比其他人更简单:

using System.IO;
using System.Reflection;
...
var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)

答案 3 :(得分:1)

您可以使用Path.GetDirectoryName(string)方法将原始路径字符串作为参数传递给它。你想解决什么问题?也许你真的需要像工作目录这样的东西?

答案 4 :(得分:0)

Path.GetFileNameWithoutExtension(path);

答案 5 :(得分:0)

如何使用FileInfo对象提取目录名?

在Vb.Net中:

fi = New FileInfo(System.Reflection.Assembly.GetExecutingAssembly.Location)
path = fi.DirectoryName

答案 6 :(得分:0)

如果你的案件中有一个exe,请使用:

    // Summary:
    //     Gets the path for the executable file that started the 
    //     application, not including the executable name.    
    Application.StartupPath