当前位置:  开发笔记 > 编程语言 > 正文

为什么用'\ 0'替换文件名中的无效字符?

如何解决《为什么用'\0'替换文件名中的无效字符?》经验,为你挑选了1个好方法。

我在同事的一个项目中偶然发现了这一点:

foreach (var invalidChar in Path.GetInvalidFileNameChars())
    fileName = fileName.Replace(invalidChar, '\0');

gerenal的想法是显而易见的,但我想知道为什么他选择用null字符替换无效字符而不是'常规'字符或只是空字符串.

我猜这个选择有很好的理由(写这篇文章的人是我们团队的老人),我只想知道这个原因是什么.



1> Thorsten Dit..:

在评论问题之后,我正在寻找证明文件名实际上不允许\ 0的证明.我找到了:

使用当前代码页中的任何字符作为名称,包括扩展字符集(128-255)中的Unicode字符和字符,但以下情况除外:
*以下保留字符:<(小于),>(大于) ,:(冒号),"(双引号),/(正斜杠),\(反斜杠),|(垂直条或管道),?(问号),*(星号)
*整数值零,有时也称为ASCII NUL字符.
*整数表示形式在1到31范围内的字符,但允许使用这些字符的备用数据流除外.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有