19

選択したファイルへの絶対パスを含む文字列を返すOpenFileDialogからファイルを取得しています。ここで、そのパスを特定のパス(この場合はアプリケーションへのパス)への相対パスとして使用します。

したがって、ファイルへのパスを取得したとしましょう。 c:\myDock\programming\myProject\Properties\AssemblyInfo.cs

私のアプリケーションはにあります

c:\myDock\programming\otherProject\bin\Debug\program.exe

次に、結果が必要です。

..\..\..\myProject\Properties\AssemblyInfo.cs

4

1 に答える 1

32

このUriクラスには、MakeRelativeUri役立つメソッドがあります。

public static string MakeRelative(string filePath, string referencePath)
{
    var fileUri = new Uri(filePath);
    var referenceUri = new Uri(referencePath);
    return Uri.UnescapeDataString(referenceUri.MakeRelativeUri(fileUri).ToString()).Replace('/', Path.DirectorySeparatorChar);
}

var result = MakeRelative(@"C:\dirName\dirName2\file.txt", @"C:\dirName\");
于 2012-11-07T09:30:33.593 に答える