php文件遍历类:FileBianli.class.php

php文件遍历类:FileBianli.class.php

 1 <?php
 2 
 3     class FileBianli{
 4         private $dirname;  
 5         private $dirsize=0;
 6         private $totalsize=0;//当前目录大小
 7         
 8         
 9         function bianliDir($dirname){
10 
11             $dir=opendir($dirname);
12 
13             while($fileName=readdir($dir)){
14                 if($fileName!="." && $fileName!=".."){
15                     $file=$dirname.'/'.$fileName;
16                     if(is_dir($file)){
17                         echo "<font color='red'>".$fileName."-".date("Y-m-d H:i:s")."-".filetype($file)."-".$this->toSize($this->dirsize($file))."-</font><br>";
18                         $totalsize+=$this->dirsize($file);
19                     }else{
20                         echo "<font color='blue'>".$fileName."-".date("Y-m-d H:i:s")."-".filetype($file)."-".$this->toSize(filesize($file))."-</font><br>";
21                         $totalsize+=filesize($file);
22                     }
23                 }
24             }
25             closedir($dir);
26             echo $dirname."共计大小为:".$this->toSize($totalsize)."<br>";
27             return true;
28         }
29 
30         
31         //将字节转换成GB,MB,KB,BYTE
32         function toSize($size){
33             $dw="Bytes";
34             if($size > pow(2,30)){
35                 $size=round($size/pow(2,30),2);
36                 $dw="GB";
37             }else if($size > pow(2,20)){
38                 $size=round($size/pow(2,20),2);
39                 $dw="MB";
40             }else if($size > pow(2,10)){
41                 $size=round($size/pow(2,10),2);
42                 $dw="KB";
43             }else{
44                 $dw="bytes";
45             }
46             return $size.$dw;
47             
48         }
49         
      //计算目录的大小 50 function dirsize($dirname){ 51 52 $dir=opendir($dirname); 53 54 while($filename=readdir($dir)){ 55 $file=$dirname."/".$filename; 56 if($filename!="." && $filename!=".."){ 57 if(is_dir($file)){ 58 $this->dirsize($file);//递归完成 59 }else{ 60 $dirsize+=filesize($file); 61 } 62 } 63 } 64 65 closedir($dir); 66 return $dirsize; 67 } 68 } 69 ?>