我的EXE位于以下位置:
C:\Projects\Bin\Sample.EXE
我想在C#中获取这样的路径:
C:\Projects\
一种方法是:
string str = "C:\\Projects\\Bin\\Sample.EXE"
string res = str.Replace("Bin", "")
但这不是一种有效的方法。我的Bin
文件夹可以更改为Bin1
,Bin2
等...因此Bin
名称不是常量。它也可以是C:\\Projects\\Debug\\Sample.EXE
。基本上,我想在目录结构中向上移动一级。
能否请您提供示例代码?
以下是我要查找的示例代码:
@marc_s代码
这与前面两个问题完全不同,我没有使用前面的两个链接找到我的问题的解决方案。
答案 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