C# 4.0 如何找到从一个绝对值到另一个绝对值的相对文件路径?
e、 g.myfunc(从:c:\my\dir,到:c:\my\other\file.ext)=>..\other\file.extC# 4.0 如何找到从一个绝对值到另一个绝对值的相对文件路径?,c#-4.0,C# 4.0,e、 g.myfunc(从:c:\my\dir,到:c:\my\other\file.ext)=>..\other\file.ext 新Uri()无需应用,除非有补救措施,它返回的是Uri格式而不是Windows文件名格式。LocalPath失败。这应该满足您的要求 string firstDirectory = "c:\\my\\dir"; string secondDirectory = "c:\\my\\other\\file.ext";
新Uri()无需应用,除非有补救措施,它返回的是Uri格式而不是Windows文件名格式。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());
这应该是你想要的
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());
谢谢-如果同一路径中没有两个目录具有相同的名称,那么似乎将owrk。如果有人有一个经过深思熟虑测试的解决方案,我将不胜感激。谢谢-如果同一路径中没有两个目录具有相同的名称,那么这似乎是可行的。如果有人有经过深思熟虑的解决方案,我将不胜感激。