Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从基绝对到相对路径_C#_.net_Path_Directory - Fatal编程技术网

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
<代码>文件.docx
sub\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\");