首页 > php代码 > php中删除文件夹以及文件夹中的文件程序代码

php中删除文件夹以及文件夹中的文件程序代码

unlink在php中是删除文件如果单文件删除我们直接使用unlink就可以了,如果是目录中的删除我们需要遍历目录进入递归操作删除了,下面来看一个例子。

在学习本方法之前我们最rmdir();函数,这个函数就是根据指定的文件路劲,删除文件或者是文件夹,但是当删除的是文件夹,并且文件夹里面还有内容的时候,就会出现Directory not empty 的错误,这个怎么来解决呢,现在我们就通过编写一个函数来解决这个问题。

在本实例中使用到了php中比较重要的几个文件操作的函数,

1.opendir:如果该函数成功运行,将返回一组目录流(一组目录字符串),如果失败将返回错误[error]。你可以在函数的最前面加上"@"来隐藏错误。

2.readdir:从目录留里面里面的返回的结果是,首先是一个.(表示这个目录,进入目录开始读取),返回..(表示已经在目录中,正在读取目录中的文件)   然后返回文件或者文件夹的名字,如果没有则返回false

3.closedir:关闭目录流

完整代码:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<?php
function delDirAndFile($dirName, $flag) {
    if (@$handle = opendir("$dirName")) {
        //如果该函数成功运行,将返回一组目录流(一组目录字符串),如果失败将返回错误[error]。你可以在函数的最前面加上&ldquo;@&rdquo;来隐藏错误。
        while (false !== ($item = readdir($handle))) {
            //从目录留里面里面的返回的结果是,首先是一个.(表示这个目录,进入目录开始读取),返回..(表示已经在目录中,正在读取目录中的文件)
            //然后返回文件或者文件夹的名字,如果没有则返回false
            if ($item != "." && $item != "..") {
                //这里是当有文件或者是文件夹的时候开始做出判断
                if (is_dir("$dirName/$item")) {
                    //如果是文件夹,递归都用
                    delDirAndFile("$dirName/$item");
                } else {
                    //否则就删除文件
                    if (unlink("$dirName/$item"))
                    //判断文件是不是删除成功了
                    echo "删除文件 $dirName/$itemn";
                }
            }
        }
        closedir($handle); //关闭文件目录流
        if ($flag == true) {
            if (rmdir($dirName)) echo '目录以及文件删除成功'; //最后删除输入的文件夹
            
        }
    }
}
?>
<?php
delDirAndFile("dd", false);
?>
</body>
</html>

代码的基本介绍在代码中都有说明,现在我们来看看测试的结果:

执行前的文件结构目录

执行时页面显示结果:

执行之后的问价目录结构:


本文地址:http://www.phprm.com/code/62721.html

转载随意,但请附上文章地址:-)

标签:opendir

相关文章

发表留言