美文网首页
php 遍历删除文件目录及文件 2022-11-22

php 遍历删除文件目录及文件 2022-11-22

作者: 阿然学编程 | 来源:发表于2022-11-22 15:15 被阅读0次
    /**
     * 删除文件目录及文件
     * @param $path  例如:../uploads/test/20221122/
     * @return bool
     */
    public function deldir($path)
    {
        //如果是目录则继续
        if (is_dir($path)) {
            //扫描一个文件夹内的所有文件夹和文件并返回数组
            $p = scandir($path);
            foreach ($p as $val) {
                //排除目录中的.和..
                if ($val != "." && $val != "..") {
                    //如果是目录则递归子目录,继续操作
                    if (is_dir($path . $val)) {
                        //子目录中操作删除文件夹和文件
                        $this->deldir($path . $val . '/');
                        //目录清空后删除空文件夹
                        @rmdir($path . $val . '/');
                    } else {
                        //如果是文件直接删除
                        @unlink($path . $val);
                    }
                }
            }
            //删除空目录
            @rmdir($path);
        } else {
            return false;
        }
    }
/**
 * 删除目录及下属所有文件:
 * @param string $dir
 */
function del_dir($dir)
{
    if (file_exists($dir)) {
        if ($handle = @opendir($dir)) {
            while ($filename = readdir($handle)) {
                if ($filename != '.' && $filename != '..') { // 排除.和..这两个特殊目录
                    $sub_file = $dir . '/' . $filename;
                    if (is_dir($sub_file)) // 判断当前是否为目录
                        del_dir($sub_file); // 递归调用删除子目录
                    if (is_file($sub_file)) // 判断是否为文件
                        unlink($sub_file); // 直接删除文件
                }
            }
            closedir($handle); // 关闭文件资源
            rmdir($dir); // 删除空目录
        }
    }
}
    // 删除文件夹
    protected function removeFile($folder)
    {
        // 先删除目录下的文件
        $dh = opendir(realpath($folder));
        while ($file = readdir($dh)) {
            if ($file != '.' && $file != '..') {
                $fullPath = realpath($folder) . DIRECTORY_SEPARATOR . $file;
                if (!is_dir($fullPath)) {
                    @unlink($fullPath);
                } else {
                    $this->removeFile($fullPath);
                }
            }
        }
        rmdir($folder);
        closedir($dh);
        return true;
    }

相关文章

网友评论

      本文标题:php 遍历删除文件目录及文件 2022-11-22

      本文链接:https://www.haomeiwen.com/subject/hfzgxdtx.html