如何从另一个路径中删除路径的一部分?

用户人

我有两个这样的文件路径:

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

那么,实现我的目标的最佳方法是什么?

蒂姆·施密特(Tim Schmelter)

Path.GetFullPathString.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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用另一个位图擦除位图的一部分

从另一个IList的一部分快速创建List

SVG | 删除另一条路径的一部分

如何使Automapper映射另一个表的一部分的属性

从另一个组件重新渲染组件的一部分

删除一个单词,除非它是另一个单词的一部分

根据另一个索引列表删除列表的一部分

Java删除文件路径的一部分

查找文本的一部分并写入另一个文件

将QTableWidget的一部分复制到另一个

仅等待另一个线程的一部分-Java

将设置的一部分放在另一个文件中

删除文件路径的一部分

如何从另一个线程锁定方法的一部分?

仅从另一个脚本中获取脚本的一部分?

在另一个图像后面显示图像的一部分

PHP检查是否另一个数组的一部分

如何删除文件的一部分并将其保存在另一个文件中-使用vi

Excel向导:如何创建一个公式,以将数字的一部分乘以一个单元格,另一部分乘以另一个

卡在“如果”测试中:另一个代码的一部分

如何在交互式外壳中删除路径的一部分?

将 div 的一部分放在另一个下面

powershell如何找出一个变量是否是另一个变量的一部分

如何删除路径的一部分并从某个部分开始

如何将json的一部分存储到另一个json文件中

删除路径的第一部分?

R根据另一个索引列表删除列表的一部分

pygame - 来自另一个表面的一部分的表面

如何删除字符串的一部分而不在另一个地方删除相同的字符集?