递归删除非空文件夹

<?php
	header('Content-type:text/html;charset=utf-8');

	/**
	* 递归删除一个非空文件夹
	* @param string $fileName
	* @return bool 成功删除ture|删除失败false
	*/ 
	function delFiles($fileName){

		// 如果文件不存在 退出程序
		if(!file_exists($fileName)) return true;

		//如果不是目录,直接删除 
		if(!is_dir($fileName)){
			unlink($newFile);
			return true;
		}

		// 打开句柄资源
		$handle = opendir($fileName);

		// 读取.和..,过滤掉虚拟目录 重要,如果不过滤会删除服务器所有文件
		readdir($handle);
		readdir($handle);

		// 循环删除
		while($file = readdir($handle)){
			$newFile = $fileName.'/'.$file;

			// 如果是目录递归删除
			if(is_dir($newFile)){
				if(!delFiles($newFile)) return false;
			}else{
				unlink($newFile);
			}
		}

		// 关闭句柄资源,重要,如果不关闭会造成程序占用导致无法删除该目录 
		closedir($handle);

		// 删除目录
		if(!rmdir($fileName)) return false;
		return true;
	}

?>


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值