利用递归创建目录和删除目录

/*
递归创建目录
要求:自己写函数
完成一次创建  ./a/b/c/d/e目录 这种级联目录
*/

function createTree($dir){

	if(file_exists($dir)){
		return ;
	}
	if(!is_dir(dirname($dir))){
		
                createTree(dirname($dir));
	}
		mkdir($dir);

		return;
}

//createTree('./e/d/c/b/a/ss');



/*
递归删除目录
要求:自己写函数
完成一次删除  ./a/b/c/d/e目录 这种级联目录
*/

function delTree($dir,$lev=1){

	if(!file_exists($dir)){
		echo '目录不存在';         //先判断是否存在 和 是否 文件夹   必须做的 
		return ; 
	}

	if(!is_dir($dir)){                 //写两个if(!) 比写 if else 嵌套两个看起来简洁多了  
		echo '不是文件夹';
		return ;
	}

	$fh=opendir($dir);               //来到这里 说明 已经验证过 存在 并且 是文件夹
	while(($dirfile = readdir($fh))!==false){

		$files = $dir . '/' . $dirfile;      //以后的判断 都是这个 而不是 $dirfile 记住了

		if($dirfile == '.' || $dirfile == '..'){
			continue;       //continue 跳出当前循环  进入下一个循环  
		}

		if(is_file($files)){
			unlink($files);
			echo '删除 ' . str_repeat('-',$lev) . $files . '文件 成功<br>';
		}

		if(is_dir($files)){

			delTree($files,$lev+1);

		}
	}
	closedir($fh);              //删除前 先关闭资源
	rmdir($dir);
	echo '删除 ' . str_repeat('--',$lev) . $dir . '目录 成功<br>';

}

delTree('./每日源代码');

结果:

删除 --./每日源代码/1119/01.php文件 成功
删除 --./每日源代码/1119/02.php文件 成功
删除 --./每日源代码/1119/03.php文件 成功
删除 --./每日源代码/1119/04.php文件 成功
删除 --./每日源代码/1119/05.php文件 成功
删除 --./每日源代码/1119/163news.html文件 成功
删除 --./每日源代码/1119/a.txt文件 成功
删除 --./每日源代码/1119/b.txt文件 成功
删除 --./每日源代码/1119/conf类与配置文件读取.bmp文件 成功
删除 --./每日源代码/1119/custom.txt文件 成功
删除 ----./每日源代码/1119/frame-01/include/conf.class.php文件 成功
删除 ----./每日源代码/1119/frame-01/include/config.inc.php文件 成功
删除 ----./每日源代码/1119/frame-01/include/db.class.php文件 成功
删除 ----./每日源代码/1119/frame-01/include/init.php文件 成功
删除 --------./每日源代码/1119/frame-01/include目录 成功
删除 ---./每日源代码/1119/frame-01/index.php文件 成功
删除 ------./每日源代码/1119/frame-01目录 成功
删除 --./每日源代码/1119/modea.txt文件 成功
删除 --./每日源代码/1119/modew.txt文件 成功
删除 --./每日源代码/1119/今天内容.txt文件 成功


递归总结:

  不要去想多层 是怎样的  这样太复杂了  只要想两层    两层搞定了  就意味着 递归写对了~~~~·

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值