gpt4 book ai didi

c# - Uri.MakeRelativeUri 错误地处理 ../

转载 作者:行者123 更新时间:2023-11-30 17:41:33 25 4
gpt4 key购买 nike

我在使用 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 构造函数之前,我通过 Path.GetFullPath() 传递路径字符串来解决这个问题。这会正确地去除 ../然后它会按您预期的那样工作。

关于c# - Uri.MakeRelativeUri 错误地处理 ../,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32786258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com