获取EXE的根目录 - C#

时间:2015-08-18 19:14:18

标签: c#

我的EXE位于以下位置:

C:\Projects\Bin\Sample.EXE

我想在C#中获取这样的路径:

C:\Projects\

一种方法是:

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

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

能否请您提供示例代码?

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

@marc_s代码

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

2 个答案:

答案 0 :(得分: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 :(得分:1)

string path = @"C:\Projects\Bin\Sample.EXE";
FileInfo file = new FileInfo(path);

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