开发的时候碰到了一个批量删除用户文件的问题,最终写了一个批量删除文件和文件夹内的方法,该方法即使文件夹内仍然存在文件夹也能删除。
所用到的PHP函数:
1 2 3 4 5 6 7 |
$dir = opendir($path);//根据路径打开文件夹 readdir($dir); //读取文件夹内的文件,通常和while循环一起使用,遍历整个文件夹 is_dir("$path/$item"); //判断该文件是否是文件夹 unlink("$path/$item"); //删除文件,注意是文件,不是文件夹,删除成功返回true,否则返回false closedir($dir); //关闭已经打开的文件夹 rmdir($path); //删除文件夹,删除成功返回true,否则返回false file_exists($path) //判断文件或文件夹是否存在, |
程序代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
/* *批量删除文件及文件夹方法 *参数:文件夹路径$path,是否删除文件夹$delDir *返回值:bool或false *作者:kTWO *时间:2016-12-9 18:59:20 *网址:https://www.k2zone.cn/ */ function delDirAndFile($path, $delDir = FALSE) { $path= iconv('utf-8' , 'gbk' ,$path); //中文路径转码 $dir = opendir($path); //打开文件夹 if ($dir) { while (false !== ( $item = readdir($dir) )) { //循环文件夹内的文件 if ($item != "." && $item != "..") is_dir("$path/$item") ? delDirAndFile("$path/$item", $delDir) : unlink("$path/$item"); //递归删除文件夹内的文件夹 } closedir($dir); //关闭文件夹 if ($delDir) return rmdir($path); //删除文件夹 }else { if (file_exists($path)) { //检查文件夹是否存在 return unlink($path); //删掉该文件夹 } else { return FALSE; } } } |