从URI相对路径中删除%20

问题描述 投票:23回答:4

我正在生成从一个目录到另一个目录的相对路径。如果OutputDirectoryName属性是包含空格的目录,则使用%20(而不是空格)对空格进行编码。我正在创建Windows文件夹的相对路径,所以我必须使用空格来放置relatiave路径。有没有一种干净的方法来指定URI的编码方式?我知道我可以对relativePath.ToString()进行替换,但是我想知道是否有更好的实现。谢谢。

public string GetOutputDirectoryAsRelativePath(string baseDirectory)
{
    Uri baseUri = new Uri(baseDirectory);
    Uri destinationUri = new Uri(OutputDirectoryName);
    Uri relativePath = baseUri.MakeRelativeUri(destinationUri);
    return relativePath.ToString();
}
c# uri relative-path
4个回答

2
投票
string sRelativeFilePath = Uri.UnescapeDataString(new Uri(sAbsolutePath + "\\", false).MakeRelative(new Uri(filename)));


1
投票

尝试查看Server.UrlDecode:http://msdn.microsoft.com/en-us/library/6196h3wt.aspx

空格字符不是唯一被编码的字符。

© www.soinside.com 2019 - 2024. All rights reserved.