从绝对基础到相对路径

结实的

我有一个绝对文件夹路径和文件路径,如下所示:

C:\BaseDir-基本文件夹

C:\BaseDir\sub\123.txt- 位于基本文件夹中的文件路径(但也可能包含一些子文件夹)

文件路径的另一个例子:C:\BaseDir\file.docxC:\BaseDir\sub\sub1\file.exe

我需要根据基本文件夹将文件的路径从绝对路径转换为相对路径结果应类似于以下内容:sub\123.txt; file.docx;sub\sub1\file.exe

请注意,我不想BaseDir在路径中。解决方案也应该适用于网络文件夹(\\Server1\BaseDir\file.docx\\172.31.1.60\BaseDir\sub\123.txt)。

是否有任何内置类可以做到这一点?

塞巴斯蒂安·里希特

学分做这个帖子:绝对到相对路径

public static string AbsoluteToRelativePath(string pathToFile, string referencePath)
{
    var fileUri = new Uri(pathToFile);
    var referenceUri = new Uri(referencePath);
    return referenceUri.MakeRelativeUri(fileUri).ToString();
}

现在你可以像这样使用它

var result = AbsoluteToRelativePath(@"C:\dir\path\to\file.txt", @"C:\dir\");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章