使用MakeRelativeUri时,我的路径不正确。现在这可能是Unity和单声道的一个问题,或者希望我只是错误地使用它,或者实际上它可能是.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
好像它将根路径中的../视为目录而不是返回目录的指令。任何人都可以确认是否属实?
答案 0 :(得分:1)
我通过将路径字符串传递给Path.GetFullPath()
然后将它们传递到Uri
构造函数来解决这个问题。这正确地剥离了../然后按照您的预期工作。