php删除目录 删除文件保留目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php删除目录 删除文件保留目录相关的知识,希望对你有一定的参考价值。

   //循环删除目录和文件函数   删除目录及目录下所有文件
    public static function  delDirAndFile( $dirName )  {
        //var_dump(is_dir($dirName));exit;
        if ( $handle = opendir( "$dirName" ) ) {  
            while ( false !== ( $item = readdir( $handle ) ) ) {  
                if ( $item != "." && $item != ".." ) {  
                    if ( is_dir( "$dirName/$item" ) ) {  
                         self::delDirAndFile( "$dirName/$item" );  //是路径继续递归
                    } else {  
                        unlink( "$dirName/$item" );//不是路径删除文件  目录/目录下的文件名带后缀
                        //if( unlink( "$dirName/$item" ) )echo "成功删除文件: $dirName/$item<br />\n";  
                    }  
                }  
            }  
           closedir( $handle ); 
           rmdir( $dirName );
           //if( rmdir( $dirName ) )echo "成功删除目录: $dirName<br />\n";  
        }  
    }  
    //循环目录下的所有文件   仅删除指定目录下的文件,不删除目录文件夹
    public static function delFileUnderDir( $dirName,$now)  {  
        if ( $handle = opendir( "$dirName" ) ) {  
           while ( false !== ( $item = readdir( $handle ) ) ) {  
                if ( $item != "." && $item != ".." ) {  
                    if ( is_dir( "$dirName/$item" ) ) {  
                        self::delFileUnderDir( "$dirName/$item" );  
                    } else {  
                        preg_match("/\d+/",$item,$matches);
                        $time=$matches[0];
                        $difference=strtotime($now)-strtotime($time);
                        $days = intval($difference/86400);
                        $remain = $difference%86400;
                        $hours = intval($remain/3600); 
                        if($hours>1 || $days>1 ){
                           unlink( "$dirName/$item"); 
                        }
                        //if( unlink( "$dirName/$item" ) )echo "成功删除文件: $dirName/$item<br />\n";  
                    }  
                }  
           }  
           closedir( $handle );  
        }  
    }  

 

以上是关于php删除目录 删除文件保留目录的主要内容,如果未能解决你的问题,请参考以下文章

PHP删除当前目录及其目录下的所有文件

删除一个目录下的所有文件,但保留一个指定文件

对指定多个目录的第一级保留进行保留(再递归删除空目录)

C++ 删除所有文件和子文件夹,但保留目录本身

Realm保留一个已删除的对象

php怎么删除目录