我希望获得我的应用程序的路径:“\\ ProgramFiles \\ myApp”,我尝试使用以下代码:
string path = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;
但它返回一条末尾有“\\ myapp.exe”的路径。
我也尝试过:
string path = System.IO.Directory.GetCurrentDirectory();
但它会抛出“NotSupportedException”。
有没有办法在最后获得没有.exe的路径?
答案 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