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

Dir*_*mar 6 c# uri

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

鉴于以下输入

C:\Data\Input Document.txt
Run Code Online (Sandbox Code Playgroud)

我想得到

file:///C:/Data/Input%20Document.txt
Run Code Online (Sandbox Code Playgroud)

我一直在用

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

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

file:///C:/Data/Input Document.txt
Run Code Online (Sandbox Code Playgroud)

Ron*_*ony 4

它已经被编码了

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