警告(2):mkdir()[function.mkdir]:没有这样的文件或目录

时间:2011-03-08 06:40:09

标签: php

您好我最近遇到了这个问题,但能够解决它。实际上拼写错误的路径。我想知道如何正确处理这些错误。即我的程序应继续执行,如果mkdir失败,应该安全返回false。这是我的代码

try
{
    foreach($folders as $folder)
    {
        $path  = $path.'/'.$folder;    
        if(!file_exists($path))
        {
            if(!(mkdir($path)))
            {
                return false;
            }
        }
    }
    return true;
}
catch (Exception $e){
    return false;
}

我只想要mkdir无法创建它。它应该返回false并且执行应该继续

编辑:以下是基于社区反馈的更新代码。但我的问题仍然没有正确答案

if(!file_exists($newfolder))
 {
    if(mkdir($newfolder,0755,true))
    {
                return true;
    }
 }

3 个答案:

答案 0 :(得分:5)

您在寻找setting the recursive flag to true吗?

<?php
// Desired folder structure
$structure = './depth1/depth2/depth3/';

// To create the nested structure, the $recursive parameter 
// to mkdir() must be specified.

if (!mkdir($structure, 0, true)) {
    die('Failed to create folders...');
}

// ...
?>

答案 1 :(得分:1)

该函数似乎不是递归的。您必须创建整个目录树,直到您要创建的目录。 阅读here。就像sarnold所说,只需将递归参数设置为true即可。

答案 2 :(得分:1)

看一下这个样本,它可能就是你要找的东西。

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