如何递归使用PHP mkdir函数跳过现有目录并创建新目录?

时间:2015-06-18 19:28:25

标签: php mkdir

如何递归使用PHP mkdir函数跳过现有目录并从string $pathname

创建新目录
// works fine if directories don't exist
mkdir($root_dir . '/demo/test/one', 0775, true);

// It will throw error - Message: mkdir(): File exists
mkdir($root_dir . '/demo/test/two', 0775, true);

解决方案是什么?

2 个答案:

答案 0 :(得分:0)

如果目录已存在,请与is_dir核对:

if(!is_dir($pathname)) { 
   mkdir($pathname, 0775, true);
}

答案 1 :(得分:0)

您的代码应该按原样运行,如果您按照@ chris85的说法第二次运行它,问题就会发生。建议您可以事先检查它们是否存在。

std::vector<Foo> values;  // Neither the vector nor its elements are const

for (std::vector<Foo>::const_iterator it = values.cbegin(), it != values.cend(); ++it)
{
    Foo const& foo = *it;         // I may not try to modify foo
    it->CallToNonConstMethod();   // Can't do this either
}