以下代码给出了错误:“mkdir:file exists”。
$path = 'c://wamp/www/et1/other';
$new_location = 'c://wamp/www/et1/other/test';
if(file_exists($path) && is_dir($path))
{
if(!file_exists($new_location))
{
mkdir($new_location, 0777);
}
}
但是,如果我没有放第二个if条件,它会给我错误:“mkdir:没有这样的文件或目录”。此外,如果我通过写mkdir($ new_location,077,true)来添加递归,我不会得到错误,但是没有创建目录。我只是不明白我在这里做错了什么。
答案 0 :(得分:1)
错误是由路径中的双斜线引起的,PHP根本不喜欢它。如果您将c://
更改为c:/
,那么一切正常。
顺便说一下,没有理由将0777
指定为模式,因为这也是默认模式。
答案 1 :(得分:0)
假设$new_location
是附加了新目录名的当前路径$path
。将递归标志设置为true,mkdir
http://php.net/manual/en/function.mkdir.php
Allows the creation of nested directories specified in the pathname.
答案 2 :(得分:0)
错误是自我解释的
Warning: mkdir() [function.mkdir]: No such file or directory in
这意味着父目录不存在..您需要添加递归选项以创建parent directory
然后current directory
mkdir($new_location, 0777, true);
如果您不想这样做,请始终检查父目录是否存在
if (!is_dir(dirname($new_location)) || !is_writable(dirname($new_location)))
{
trigger_error("Your parent does not exist");
}