If you are using .NET Core 2.0, Path.GetRelativePath()
is available providing this specific functionality:
var relativeTo = @"C:\Program Files\Dummy Folder\MyProgram"; var path = @"C:\Program Files\Dummy Folder\MyProgram\Data\datafile1.dat"; string relativePath = System.IO.Path.GetRelativePath(relativeTo, path); System.Console.WriteLine(relativePath); // output --> Data\datafile1.dat
Otherwise, for .NET full framework (as of v4.7) recommend using one of the other suggested answers.