PHP删除大文件夹下的文件以及文件夹
关键的函数:
opendir() 函数通常搭配readdir() 函数一起使用,用以读取目录下的文件内容。
用于示范的目录及其内容如下:
A文件夹下有两个子目录,一个是 a.css 另一个是B文件夹。
- 下面使用opendir() 函数以及readdir() 函数对目录A进行读取:
$dir = "./A";
// 打开目录,然后读取其内容
if (is_dir($dir)){
if ($dh = opendir($dir)){
while (($file = readdir($dh)) !== false){
echo "filename:" . $file . "<br>";
}
closedir($dh);
}
}
读取结果为:
- 删除 A 文件夹下的 B 文件夹以及 a.css
function delDir($A){//自定义函数递归的函数整个目录
if(file_exists($A)){//判断目录是否存在,如果不存在rmdir()函数会出错
if($B=@opendir($A)){//打开目录返回目录资源,并判断是否成功;获取目录A下的文件或文件夹B、C
while($filename=readdir($B)){//遍历目录B,读出目录中的文件或文件夹
if($filename!='.' && $filename!='..'){//排除两个特殊的目录
$subFile=$A."/".$filename;//将目录下的文件与当前目录相连 A/B、A/C
if(is_dir($subFile)){//如果是目录条件则成了
delDir($subFile);//递归调用自己(B文件夹)删除子目录
rmdir($subFile);//删除子目录后,删除该目录(B文件夹)
}
if(is_file($subFile)){//如果是文件条件则成立 ./A/a.php
unlink($subFile);//直接删除这个文件
}
}
}
closedir($B);//关闭目录资源
//rmdir($A);//删除A文件夹
}
}
}
delDir("./A");//调用delDir函数