C# 将相对路径转换为绝对路径

C# 将相对路径转换为绝对路径,c#,relative-path,absolute-path,C#,Relative Path,Absolute Path,我正在尝试使用链接标签在windows窗体中打开Help.txt文件。但是,无法从绝对路径转换为相对路径 首先,我尝试获取exe文件的绝对路径。这是成功的。 其次,只获取exe文件的目录。这是成功的。 第三,我试图将目录与Help.txt文件的相对路径结合起来。这是不成功的 Exe文件位于->\Project\bin\Debug文件夹中,而Help.txt文件位于\Project\Help文件夹中。这是我的代码:- string exeFile = (new System.Uri(Assemb

我正在尝试使用链接标签在windows窗体中打开Help.txt文件。但是,无法从绝对路径转换为相对路径

首先,我尝试获取exe文件的绝对路径。这是成功的。 其次,只获取exe文件的目录。这是成功的。 第三,我试图将目录与Help.txt文件的相对路径结合起来。这是不成功的

Exe文件位于->\Project\bin\Debug文件夹中,而Help.txt文件位于\Project\Help文件夹中。这是我的代码:-

 string exeFile = (new System.Uri(Assembly.GetEntryAssembly().CodeBase)).AbsolutePath;
 string Dir = Uri.UnescapeDataString(Path.GetDirectoryName(exeFile));
 string path = Path.Combine(Dir, @"..\..\Help\Help.txt");
 System.Diagnostics.Process.Start(path);

“我的路径”的结果是->\Project\bin\Debug….\Help\Help.txt

您需要使用path.GetFullPath()来考虑上层目录“../../”,请参见以下内容:

string exeFile = new System.Uri(Assembly.GetEntryAssembly().CodeBase).AbsolutePath;
string Dir = Path.GetDirectoryName(exeFile);
string path = Path.GetFullPath(Path.Combine(Dir, @"..\..\Help\Help.txt"));
System.Diagnostics.Process.Start(path);
根据MSDN of:返回指定路径字符串的绝对路径。
然而,将字符串组合到一个路径中。

可能是路径的重复项,或者可以看到您能否向我们显示路径的值(使用无效字符)?exeFile的值也是多少?Uri.UnescapeDataString