您的位置:首页 > 其它

递归创建目录与删除目录

2015-08-25 13:20 197 查看
递归创建级联目录,递归删除级联目录,例如:./a/b/c/d/e

<?php
//递归创建目录
function mk_dir($path){
//判断目录是否存在
if(is_dir($path)){
return true;
}
//如果父目录存在,则直接创建
if(is_dir(dirname($path))){
mkdir($path);
return true;
}
//如果父目录不存在,则递归
mk_dir(dirname($path));
//父目录已存在,则返回创建该子目录
return mkdir($path);
}
echo mk_dir('./a/b/f/d/sa/as')?'ok':'fail';
//第二种方式:难理解
function printpath($path){
if(is_dir($path)){
return true;
}
// 父目录存在或你帮我创建父目录,再创建子目录
return is_dir(dirname($path))||printpath(dirname($path))?mkdir($path):false;
}
echo printpath('./b/as/ds')?'OK':'FAIL';
//函数递归创建目录mkdir(目录,权限默认0777,是否递归创建);
mkdir('./aa/bb/cc',0777,true);

//递归删除目录
function deldir($path){
//如果不是目录,直接返回
if(!is_dir($path)){
return null;
}
//打开目录
$dh=opendir($path);
while(($row=readdir($dh))!==false){
if($row=='.'||$row=='..'){
continue;
}
//判断是否是普通文件
if(!is_dir($path.'/'.$row)){
unlink($path.'/'.$row);
}else{
deldir($path.'/'.$row);
}
}
closedir($dh);
rmdir($path);
return true;
}
echo deldir('./aa')?'删了':'出错了';
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: