今天打算迁移网站发现某个文件夹下文件太多了,用宝塔面板直接删除文件夹会由于文件过多过大直接卡死,手动删除又太累,于是便选择用代码执行,简单快捷分享并记录一下
PHP删除指定文件夹下所有文件
<?php//设置需要删除的文件夹$path "./ip/"//清空文件夹函数和清空文件夹后删除空文件夹函数的处理function deldir$path//如果是目录则继续ifis_dir$path//扫描一个文件夹内的所有文件夹和文件并返回数组$p scandir$pathforeach$p as $val//排除目录中的.和..if$val $val //如果是目录则递归子目录,继续操作ifis_dir$path$val//子目录中操作删除文件夹和文件deldir$path$val//目录清空后删除空文件夹@rmdir$path$valelse//如果是文件直接删除unlink$path$val//调用函数,传入路径deldir$path
循环删除function deltree($pathdir) { echo $pathdir;//我调试时用的 if(is_empty_dir($pathdir))//如果是空的 { rmdir($pathdir);//直接删除 } else{//否则读这个目录,除了.和..外 $d=dir($pathdir); while($a=$d->read()) { if(is_file($pathdir./.$a) && ($a!=.) && ($a!=..)){unlink($pathdir./.$a);} //如果是文件就直接删除 if(is_dir($pathdir./.$a) && ($a!=.) && ($a!=..)) {//如果是目录 if(!is_empty_dir($pathdir./.$a))//是否为空 {//如果不是,调用自身,不过是原来的路径+他下级的目录名 deltree($pathdir./.$a); } if(is_empty_dir($pathdir./.$a)) {//如果是空就直接删除 rmdir($pathdir./.$a); } } } $d->close(); echo 必须先删除目录下的所有文件;//我调试时用的 } } function is_empty_dir($pathdir) { //判断目录是否为空,我的方法不是很好吧?只是看除了.和..之外有其他东西不是为空 $d=opendir($pathdir); $i=0; while($a=readdir($d)) { $i++; } closedir($d); if($i>2){return false;} else return true; }
你 发表评论:
欢迎