我有两个这样的文件路径:
var path1 = "c:\dir\anotherdir";
var path2 = "c:\dir\anotherdir\yetanotherdir\dirception\file.zip";
var result = path2 - path1; //Wanted result: yetanotherdir\dirception\file.zip
我需要做的是获取path1并将其从path2中“删除”。
现在,最简单的解决方案是仅使用substr或其他内容,并以“文本”方式从path2剪切出path1。但是我宁愿在c#中使用一些实际的内置函数(旨在用于路径)来处理此问题。
我尝试了这个:
var result = (new Uri(path1)).MakeRelativeUri(path2);
预期结果:yetanotherdir \ dirception \ file.zip
实际结果:anotherdir \ yetanotherdir \ dirception \ file.zip
那么,实现我的目标的最佳方法是什么?
Path.GetFullPath
,String.StartsWith
并且String.Substring
应该足够可靠:
string path1 = @"c:\dir\anotherdir";
string path2 = @"c:\dir\anotherdir\yetanotherdir\dirception\file.zip";
string fullPath1 = Path.GetFullPath(path1);
string fullPath2 = Path.GetFullPath(path2);
if (fullPath2.StartsWith(fullPath1, StringComparison.CurrentCultureIgnoreCase))
{
string result = fullPath2.Substring(fullPath1.Length).TrimStart(Path.DirectorySeparatorChar);
// yetanotherdir\dirception\file.zip
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句