C# 从基绝对到相对路径
我有一个绝对文件夹路径和文件路径,如下所示:C# 从基绝对到相对路径,c#,.net,path,directory,C#,.net,Path,Directory,我有一个绝对文件夹路径和文件路径,如下所示: C:\BaseDir-基本文件夹 C:\BaseDir\sub\123.txt-位于基本文件夹中的文件路径(但也可能包含一些子文件夹) 文件路径的另一个示例:C:\BaseDir\file.docx或C:\BaseDir\sub\sub1\file.exe 我需要根据基本文件夹将路径从绝对路径转换为相对路径。结果应如下所示: sub\123.txt文件.docxsub\sub1\file.exe 请注意,我不希望路径中有BaseDir。解决方案还应适
C:\BaseDir
-基本文件夹
C:\BaseDir\sub\123.txt
-位于基本文件夹中的文件路径(但也可能包含一些子文件夹)
文件路径的另一个示例:C:\BaseDir\file.docx
或C:\BaseDir\sub\sub1\file.exe
我需要根据基本文件夹将路径从绝对路径转换为相对路径。结果应如下所示:
sub\123.txt
<代码>文件.docxsub\sub1\file.exe
请注意,我不希望路径中有BaseDir
。解决方案还应适用于网络文件夹(\\Server1\BaseDir\file.docx
或\\172.31.1.60\BaseDir\sub\123.txt
)
是否有任何内置类可以执行此操作?您可以使用以下方法:
你可以做这篇文章: 现在你可以像这样使用它
var result = AbsoluteToRelativePath(@"C:\dir\path\to\file.txt", @"C:\dir\");
我会尝试使用Substring和IndexOfPossible复制
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\");