您好我最近遇到了这个问题,但能够解决它。实际上拼写错误的路径。我想知道如何正确处理这些错误。即我的程序应继续执行,如果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;
}
}
答案 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)
看一下这个样本,它可能就是你要找的东西。