php递归删除指定目录下所有文件

网站技术 ayflying 3163℃ 评论

该方法可以指定是否删除当前目录,比较灵活

 /**
     * 删除目录及目录下所有文件或删除指定文件
     * @param str $path   待删除目录路径
     * @param int $delDir 是否删除目录,1或true删除目录,0或false则只删除文件保留目录(包含子目录)
     * @return bool 返回删除状态
     */
    function delDirAndFile($path, $delDir = FALSE) {
        $handle = opendir($path);
        if ($handle) {
            while (false !== ( $item = readdir($handle) )) {
                if ($item != "." && $item != "..")
                    is_dir("$path/$item") ? $this -> delDirAndFile("$path/$item", $delDir) : unlink("$path/$item");
            }
            closedir($handle);
            if ($delDir)
                return rmdir($path);
        }else {
            if (file_exists($path)) {
                return unlink($path);
            } else {
                return FALSE;
            }
        }
    }


此方法是在类中使用的,如果直接当函数使用,需要把里面的

is_dir("$path/$item") ? $this -> delDirAndFile("$path/$item", $delDir) : unlink("$path/$item");

改为

is_dir("$path/$item") ? delDirAndFile("$path/$item", $delDir) : unlink("$path/$item");


转载请注明:七彩悠悠博客 | 心悠悠 情悠悠 » php递归删除指定目录下所有文件

高效,专业,悠悠博客

联系我们