在文件名(在Windows上)和URL中使用占位符的最佳字符是什么?

Chr*_*nte 4 c# url filenames placeholder

我正在用C#编写一个应用程序,需要在URL和/或文件名中找到占位符,并用值替换,就像这样:C:\files\file{number}=> C:\files\file1不幸的是,对于这个例子,文件名和URL中允许使用花括号.

任何人都可以建议我可以使用一些字符来表示文件和URL中的占位符吗?谢谢!

Mic*_*tta 6

当您尝试使用它们时,Windows相当有用地告诉您文件名中不允许使用哪些字符:

文件名不能包含以下任何字符:
\/:*?"<> |

有关更多信息,请参阅此支持文章,包括允许的字符列表.

对命名文件,文件夹或快捷方式有效的字符包括字母(AZ)和数字(0-9)的任意组合,以及以下特殊字符:

^   Accent circumflex (caret)
&   Ampersand
'   Apostrophe (single quotation mark)
@   At sign
{   Brace left
}   Brace right
[   Bracket opening
]   Bracket closing
,   Comma
$   Dollar sign
=   Equal sign
!   Exclamation point
-   Hyphen
#   Number sign
(   Parenthesis opening
)   Parenthesis closing
%   Percent
.   Period
+   Plus
~   Tilde
_   Underscore

至于URL,请参阅RFC 1738的 2.2节,了解允许的字符:

因此,只有字母数字,特殊字符"$ -_.+!*'()",和用于各自保留目的的保留字符可以在URL中使用未编码.

...同样感兴趣的是:

出于多种原因,角色可能不安全.空间字符是不安全的,因为当URL被转录或排版或受到文字处理程序的处理时,重要的空格可能会消失并且可能引入无关紧要的空间.字符"<"和">"是不安全的,因为它们被用作自由文本中URL的分隔符; 引号(""")用于分隔某些系统中的URL.字符"#"是不安全的,应始终进行编码,因为它在万维网和其他系统中用于从片段/锚点分隔URL可能跟随它的标识符.字符"%"是不安全的,因为它用于其他字符的编码.其他字符是不安全的,因为已知网关和其他传输代理有时会修改这些字符.这些字符是"{","}","|","\","^","〜","[","]"和"`".

所有不安全的字符必须始终在URL中编码.

它看起来像双引号和尖括号字符("<>)是很好的选择.