Path.Combine and the dot notation

.net, c#, combinations, directory, path

Solution

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

Problem

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.

Original source

Related problems