URI 和 C# 的问题:URI 以“./”开头,无法读取或用作路径

本文关键字:URI 读取 路径 开头 问题 | 更新日期: 2023-09-27 18:33:32

我有一个简单的函数,它应该将一个文件路径作为字符串,然后根据主应用程序工作目录创建一个相对路径:

private string ConvertToLocal ( string path )
{
        Uri finalURI;
        Uri applicationURI = new Uri ( System.AppDomain.CurrentDomain.BaseDirectory );
        string rebuiltPath = applicationURI.ToString () + path;
        Uri targetURI = new Uri ( rebuiltPath );
        finalURI = applicationURI.MakeRelativeUri ( targetURI );
        return finalURI.ToString ();
}

它应该返回一个漂亮的简单字符串,之后用于保存相对 URI。这个想法是允许独立于当前目录加载资产。我以为它会生成一个像"''资源''图像''img.png"这样的路径,但它不是那样工作的。不仅如此,由于字符串的格式设置方式,我不断收到异常,因为它总是在开头带有一个点斜杠,例如:"./C:/Users/Foo/Bar/Resources/Images/img.png",如果我尝试使用它,它会产生异常。我找不到任何帮助,文档没有提到任何东西,所以我在这里寻求一些帮助。谢谢。

URI 和 C# 的问题:URI 以“./”开头,无法读取或用作路径

我认为您将路径 C:/Users/Foo/Bar/Resources/Images/img.png 设置为可变路径。所以重建路径不是有效的路径并返回意外的结果。如果要返回"/Resources/Images/img.png"您应该将/Resources/Images/img.png 设置为路径变量。关于MakeRelativeUri,你可以参考以下内容:http://msdn.microsoft.com/en-us/library/system.uri.makerelativeuri(v=vs.100).aspx