名称为空的文件

Joh*_*itb 9 filenames

我正在编写一个用于在给定目录中显示文件的小部件,我想知道是否需要涵盖文件名称为空的情况。

测试显示结果不明显,所以我想知道是否有人有确切的信息

$ touch ""
touch: cannot touch `': No such file or directory

$ echo > ""
bash: : No such file or directory
Run Code Online (Sandbox Code Playgroud)

der*_*ert 15

文件名不能为空。引用Single Unix Specification, §3.170,文件名是:

由 1 到 {NAME_MAX} 个字节组成的名称,用于命名文件。组成名称的字符可以从除<斜杠>字符和空字节之外的所有字符值的集合中选择。

因此,它必须至少包含 1 个字节,即不能为空。

并不是根据那个定义,这些字符都不需要是可见的(即,都可以是空白),也不需要打印(都可以是控制字符)。如果您假设文件名是 UTF-8,则不必如此。