Uri.makerrelativeuri错误地处理

本文关键字:处理 错误 makerrelativeuri Uri | 更新日期: 2023-09-27 18:14:36

使用MakeRelativeUri时,我得到了一个不正确的路径。现在这可能是Unity和mono的问题,或者希望我只是使用错误,或者可能实际上是。net中的错误。请原谅我举了一个复杂的例子,但这就是我所拥有的。

System.Uri fileURI = new System.Uri( "/Home/Folder1/Folder2/Folder3/Folder4/Folder5/Folder6/../../../../Folder7/Folder8/file.png" );
System.Uri rootURI = new System.Uri( "/Home/Folder1/Folder2/Folder3/../FolderA/." );
result = rootURI.MakeRelativeUri( fileURI ).ToString();

结果是../../Folder4/Folder5/Folder6/../../../../Folder7/Folder8/file.png

,但它应该是../Folder3/Folder4/Folder5/Folder6/../../../../Folder7/Folder8/file.png

它似乎是在治疗……/在根路径中作为一个目录,而不是返回一个目录的指令。有人能证实这是真的吗?

Uri.makerrelativeuri错误地处理

在将路径字符串传递到Uri构造函数之前,我已经通过Path.GetFullPath()传递路径字符串来解决这个问题。这样就去掉了…/正确,这就像你期望的那样工作。