2008-09-08 15 views

回答

3

一个原因是兼容性 - 任何已经完成'检查存在'的人都知道排除目录;改变这种行为可能会混淆那些依赖这种行为的人。其次,底层代码通常会在文件系统条目catlog中对操作系统进行检查 - 对于操作系统,目录与文件相同。换句话说,它正在寻找目录中'xyz'的输入,而不是目录中名称'xyz'的文件。

向后兼容是主要原因,我怀疑。

1

在写入之前,通常使用“文件存在”功能来检查路径。在这个用例中,文件的类型是不相关的,如果有一个名为“/ home/foo”的目录,你将不能创建一个名为“/ home/foo”的文件。另外PHP也是其中一个

  • file_exists()将返回TRUE文件,目录和符号链接
  • is_file()将返回TRUE的文件,但是假的:你提到的语言,这取决于文件的你在乎那种(S)提供了一些功能目录和sym链接
  • is_dir()将为导演返回TRUE S,但假文件和符号链接
  • is_link()将返回TRUE符号链接,但假文件和目录
2

还有一个正式的原因目录是一个文件:

位于目录中的文件(或指向文件的链接)可以是 。但是,更多 通常,一个目录可以包含 文件列表或链接到文件的列表 。在此定义中,重要的是术语“文件” 包括目录。这允许目录层次结构 存在,即包含 子目录的目录。

维基百科,Unix哲学的‘Computer file’

相关问题