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",如果我尝试使用它,它会产生异常。我找不到任何帮助,文档没有提到任何东西,所以我在这里寻求一些帮助。谢谢。
我认为您将路径 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