1
myfunc(c:\ my \ dirから:c:\ my \ other \ file.ext)==> .. \ other \ file.ext。ファイルパスの相対パスを絶対パスからどのように見つけるか?
新しいUri()は、Windowsファイル名形式ではなくURI形式を返す救済策がない限り、適用する必要はありません。 .LocalPathは失敗します。
myfunc(c:\ my \ dirから:c:\ my \ other \ file.ext)==> .. \ other \ file.ext。ファイルパスの相対パスを絶対パスからどのように見つけるか?
新しいUri()は、Windowsファイル名形式ではなくURI形式を返す救済策がない限り、適用する必要はありません。 .LocalPathは失敗します。
これは、必要な操作を行う必要があります。
string firstDirectory = "c:\\my\\dir";
string secondDirectory = "c:\\my\\other\\file.ext";
var first = firstDirectory.Split('\\');
var second = secondDirectory.Split('\\');
var directoriesToGoBack = first.Except(second);
var directoriesToGoForward = second.Except(first);
StringBuilder directory = new StringBuilder();
bool initial = true;
foreach (string s in directoriesToGoBack)
{
if (initial)
{
initial = false;
} else
{
directory.Append('\\');
}
directory.Append("..");
}
foreach (string s in directoriesToGoForward)
{
directory.Append('\\');
directory.Append(s);
}
Console.WriteLine(directory.ToString());
ありがとうございます - 同じパスに2つのディレクトリに同じ名前がない場合は、owrkと思われます。誰かが徹底的にテストした解決策を持っているなら、私は感謝します。 – ChrisJJ