mkdir在创建目录时发出错误警告

时间:2016-09-07 17:33:13

标签: php mkdir

我正在尝试创建一个临时目录,但我收到了以下错误

Warning: mkdir(): File exists

但是当我检查目录时实际上并不存在。$tmp的典型值是/tmp/testKanfEt

$tmp = tempnam(sys_get_temp_dir() , 'test');
echo  $tmp;
mkdir($tmp);

我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

函数tempnam() 在给定路径中创建文件,如果成功创建,将返回完整路径。您正在尝试使用与文件相同的相同 路径创建目录。

但在这种情况下,我认为tempnam()被错误地使用了。 当尝试在除o.s.之外的任何其他目录中创建 tmp 文件时,应该使用它。 tmp 文件夹。

为什么呢?因为在 tmp 目录中创建文件,所以不应该关心文件名,因为一旦在文件上发布了 lock (使用fclose()或脚本结束执行例如)你不能保证文件仍在那里。

而是使用tmpfile(),因为它返回一个文件句柄,直接在 tmp 目录中创建一个文件。

如果您确实需要文件名,您仍然可以使用tempnam()或从句柄中检索它,如下所示:

echo stream_get_meta_data(($fh=tempfile()))["uri"];