I'm looking for something akin to Path.Combine
method that will help me correctly combine absolute and relative paths. For example, I want
Path.Combine(@"c:\alpha\beta", @"..\gamma");
to yield c:\alpha\gamma
instead of c:\alpha\..\gamma
as Path.Combine
does. Is there any easy way of accomplishing this? Needless to say, I also want to period .
path or multiple ..
paths (e.g., ..\..\
) to work correctly.
Use Path.GetFullPath
string path = Path.Combine(@"c:\alpha\beta", @"..\gamma");
Console.WriteLine(Path.GetFullPath(path));
or the DirectoryInfo
class:
string path = Path.Combine(@"c:\alpha\beta", @"..\gamma");
DirectoryInfo info = new DirectoryInfo(path);
Console.WriteLine(info.FullName);
Both will output:
c:\alpha\gamma