如何在 C# 中创建正确转义的 file:// URI?

发布于 2024-07-25 20:14:47 字数 431 浏览 3 评论 0原文

从本地路径创建完全 URL 编码的 file:// URI(即转义所有特殊字符(例如空格等))的正确方法是什么?

给定以下输入,

C:\Data\Input Document.txt

我希望得到

file:///C:/Data/Input%20Document.txt

我一直在使用的

Uri uri = new Uri(@"C:\Data\Input Document.txt", UriKind.RelativeOrAbsolute); 

但是,这会导致未转义的 URI:

file:///C:/Data/Input Document.txt

What would be the correct way to create a fully URL-encoded file:// URI from a local path, i.e. where all special characters such as blanks etc are escaped?

Given the following input

C:\Data\Input Document.txt

I would like to get

file:///C:/Data/Input%20Document.txt

I've been using

Uri uri = new Uri(@"C:\Data\Input Document.txt", UriKind.RelativeOrAbsolute); 

However, this results in an unescaped URI:

file:///C:/Data/Input Document.txt

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

贪恋 2024-08-01 20:14:47

它已经编码

uri.AbsolutePath 应该给你 "C:/Data/Input%20Document.txt"

it is already encoded

uri.AbsolutePath should give you "C:/Data/Input%20Document.txt"

回梦 2024-08-01 20:14:47

您是否尝试过:

new Uri(str).AbsoluteUri

不确定我是否理解您对相对 URI 的要求...

Have you tried:

new Uri(str).AbsoluteUri

Not sure I understand your requirement for relative URIs...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文