Path.Combine和点表示法

Dmi*_*ruk 40 .net c# directory combinations path

我正在寻找类似于Path.Combine方法的东西,这将有助于我正确地组合绝对路径和相对路径.例如,我想要

Path.Combine(@"c:\alpha\beta", @"..\gamma");
Run Code Online (Sandbox Code Playgroud)

产生c:\alpha\gamma的,而不是c:\alpha\..\gammaPath.Combine做.有没有简单的方法来实现这一目标?不用说,我也希望周期.路径或多个..路径(例如..\..\)正常工作.

jas*_*son 65

使用 Path.GetFullPath

string path = Path.Combine(@"c:\alpha\beta", @"..\gamma");
Console.WriteLine(Path.GetFullPath(path));
Run Code Online (Sandbox Code Playgroud)

或者DirectoryInfo班级:

string path = Path.Combine(@"c:\alpha\beta", @"..\gamma");
DirectoryInfo info = new DirectoryInfo(path);
Console.WriteLine(info.FullName);
Run Code Online (Sandbox Code Playgroud)

两者都会输出:

c:\alpha\gamma
Run Code Online (Sandbox Code Playgroud)

  • 嗯,甚至都不知道`GetFullPath`存在.性感. (5认同)

小智 8

您可以执行Path.Combine,然后是Path.GetFullPath.


Ste*_*ner 6

您可以使用2个调用的组合,如下所示:

string path = Path.Combine(@"c:\alpha\beta", @"..\gamma");
string result = Path.GetFullPath(path);
Run Code Online (Sandbox Code Playgroud)

这应该会给你你想要的结果.