关于获取EXE的根目录:获取EXE的根目录 – C#


Get the root directory of the EXE - C#

本问题已经有最佳答案,请猛点这里访问。

我在以下位置有exe:

1
C:\Projects\Bin\Sample.EXE

我想在C中找到这样的路径:

1
C:\Projects\

一种方法是:

1
2
string str ="C:\\Projects\\Bin\\Sample.EXE"
string res = str.Replace("Bin","")

但这不是一种有效的方法。我的Bin文件夹可以改为Bin1Bin2等……因此,Bin名称不是常量。也可以是C:\\Projects\\Debug\\Sample.EXE。基本上,我想在目录结构中向上移动一级。

你能提供样品代码吗?

以下是我要查找的示例代码:

@马尔科斯密码

这与前面的两个问题完全不同,我没有使用前面的两个链接找到问题的解决方案。


获取当前正在执行的程序集的位置,并从该目录上移一级-如下所示:

1
2
3
4
5
-- get path of the executing assembly
string currentPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

-- get the parent directory for that path
string parentPath = Path.GetFullPath(Path.Combine(currentPath,".."));


1
2
3
4
5
string path = @"C:\Projects\Bin\Sample.EXE";
FileInfo file = new FileInfo(path);

string res = file.Directory.Parent.FullName;
Console.WriteLine(res); // C:\Projects