【问题标题】:PHP Warning: mkdir(): Not a directory when creating directory [closed]PHP警告:mkdir():创建目录时不是目录[关闭]
【发布时间】:2013-05-20 08:17:43
【问题描述】:

我正在尝试递归创建目录,但我收到了这个 PHP 警告:

代码:

<?php mkdir('data/1/0', 0755, true);

输出:

PHP Warning: mkdir(): Not a directory in /home/myScript.php on line 1

这是在 Linux 上运行的。

【问题讨论】:

  • 感谢您花时间写一个常见问题解答风格的问题,但这个特定问题过于本地化;该错误已经表明路径的某些部分不是目录。
  • 但是当我遇到问题时,我搜索了*.com,但没有找到任何有用的东西。他们都没有想到我下面提到的问题。我认为问题不是太本地化。错误并不表明路径的一部分不是目录,好吗?
  • 这个问题对我有帮助。

标签: php linux filesystems mkdir


【解决方案1】:

从手册中,我们可以看到:

bool mkdir( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )

http://www.php.net/manual/en/function.mkdir.php

当我们尝试mkdirdata/1/0时,实际上我们可以在data/1目录下mkdir0/。但是当data/1恰好是文件而不是目录时,php会发出警告PHP Warning: mkdir(): Not a directory

因此,当您收到此警告时,您可以检查路径名的前缀是否是一个文件,该文件应该是一个目录。

【讨论】: