e.g。 myfunc(来自:c:\ my \ dir,to:c:\ my \ other \ file.ext)==> .. \ other \ file.ext。
新的Uri()不需要申请,除非它有一个补救措施,它返回URI格式而不是Windows文件名格式。 .LocalPath失败。
答案 0 :(得分:1)
这应该做你想要的。
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());