余烬缀记

文件夹统计和删除函数

用于统计文件夹的大小和文件,文件夹数量。传入文件夹的绝对路径

function addup_dir($dir_name){
     // 初始化大小,文件数量,文件夹数量
     $size=0;$dir=0;$file=0;
     if ($handle = opendir($dir_name)){
         while (false!==($item=readdir($handle))){
             if ($item !='.' && $item !='..') {
                 if (is_dir("$dir_name/$item")) {
                    $data = $this->addup_dir("$dir_name/$item");
                    $size+=$data['size'];
                    $dir+=$data['dir'];
                    $file+=$data['file'];
                    $dir++;
                 }
                else{
                        $size += filesize("$dir_name/$item");
                        $file++;
                    }
                }
            }
            closedir( $handle );
      }
     return array('size'=>$size,'dir'=>$dir,'file'=>$file);
 }

删除文件夹函数,传入绝对路径

function delete_dir( $dir_name ){
     if ($handle = opendir($dir_name)){
         $size = 0;
         while (false!==($item=readdir($handle))){
             if ($item !='.' && $item !='..') {
                 if ( is_dir("$dir_name/$item")) {
                     delete_dir("$dir_name/$item");
                 }
                 else{
                     $size += filesize("$dir_name/$item");
                     unlink("$dir_name/$item");
                 }
             }
         }
         closedir( $handle );
         if(rmdir($dir_name)){
             return true;
         };
     }
 }