如何在路径中转义井号(#)符号?

huangapple go评论161阅读模式
英文:

How to escape sharp(#) symbol in path?

问题

我试图从字符串中获取绝对路径。在遇到包含散字符(#)符号的路径之前,一切都正常工作。
以下是我的示例:

  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. var codeBase = "file:///C:/#MyFolder/TestApp/bin/Debug/net6.0-windows/TestApp.dll";
  6. var uri = new Uri(codeBase);
  7. var path = Uri.UnescapeDataString(uri.AbsolutePath);
  8. Console.WriteLine(path);
  9. }
  10. }

Uri.AbsolutePath返回C:\。是的,Uri.AbsolutePath不支持#符号。但在这种情况下,我该怎么做才能获取绝对路径呢?
老实说,这是我第一次看到有人在文件夹名称中使用这个符号。

英文:

I'm trying to get absolute path from string. Everything worked fine before i met path that contains sparp(#) symbol.
Here is my example:

  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. var codeBase = "file:///C:/#MyFolder/TestApp/bin/Debug/net6.0-windows/TestApp.dll";
  6. var uri = new Uri(codeBase);
  7. var path = Uri.UnescapeDataString(uri.AbsolutePath);
  8. Console.WriteLine(path);
  9. }
  10. }

And Uri.AbsolutePath returns C:\. Yeah Uri.AbsolutePath doesn't work with # symbol. But what sould i do in this case to get absolute path?
Honestly it's the first time i see that someone use this symbol in folder name.

答案1

得分: 2

对于Uri,您可以使用%23来转义保留的符号

  1. var codeBase = "file:///C:/%23MyFolder/TestApp/bin/Debug/net6.0-windows/TestApp.dll";

演示 @sharplab.io

英文:

For Uri you can use the %23 to escape the reserved # symbol:

  1. var codeBase = "file:///C:/%23MyFolder/TestApp/bin/Debug/net6.0-windows/TestApp.dll";

Demo @sharplab.io

答案2

得分: -1

你可以尝试类似这样的代码:

  1. var codeBase = "file:///C:/#MyFolder/TestApp/bin/Debug/net6.0-windows/TestApp.dll";
  2. var uri = new Uri(codeBase);
  3. var path = Uri.UnescapeDataString(uri.AbsolutePath);
  4. Console.WriteLine(path);

Uri 对你有用。

英文:

You can try some thing like this:

  1. var codeBase = "file:///C:/#MyFolder/TestApp/bin/Debug/net6.0-windows/TestApp.dll";
  2. var uri = new Uri(codeBase);
  3. var path = Uri.UnescapeDataString(uri.AbsolutePath);
  4. Console.WriteLine(path);

The Uri will work for you

答案3

得分: -1

#FolderName是您计算机上文件夹的替代名称。

要获取精确的URL,请找到该文件并单击此处:
如何在路径中转义井号(#)符号?

单击此处将其转换为URL:
如何在路径中转义井号(#)符号?

英文:

#FolderName is the replacement to the folder in your pc.

To get the exact URL locate the file and click here:如何在路径中转义井号(#)符号?

clicking there will convert it into url:
如何在路径中转义井号(#)符号?

huangapple
  • 本文由 发表于 2023年8月10日 16:24:49
  • 转载请务必保留本文链接:https://go.coder-hub.com/76873898.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定