PHP目录的遍历,目录大小,目录删除,目录剪切,目录复制操作

  1 <?php
  2 /*
  3 *    Version 1.0
  4 *    2014-12-11
  5 *    文件夹的操作
  6 *    删除,大小统计,移动,复制
  7 *    文件夹的分割使用linux方式
  8 *    
  9 */
 10 //文件间的删除
 11 function delete_dir($dir){
 12     $dir = rtrim(str_replace("\\","/",$dir),'/').'/';//统一格式,避免格式问题出错
 13     if(!file_exists($dir)){
 14         exit("{$dir} is not exists!Check your input!");
 15     }
 16     $dh = opendir($dir);
 17     readdir($dh);
 18     readdir($dh);
 19     while($fileName = readdir($dh)){
 20         $newFileName = $dir.$fileName;
 21         if(is_file($newFileName)){
 22             if(unlink($newFileName)){
 23                 echo 'File Delete '.$newFileName.' Successfully!<br />';
 24             }
 25         }else if(is_dir($newFileName)){
 26             $newDir = $newFileName.'/';
 27             delete_dir($newDir);
 28         }else{
 29             echo "{$newFileName} Unkown File Type!<br />";
 30         }
 31     }
 32     closedir($dh);
 33     if(rmdir($dir)){
 34         echo 'Delete Dir '.$dir.' Successfully!<hr />';
 35     }
 36 }
 37 //文件夹大小统计
 38 function calc_dir($dir){
 39     $dir = rtrim(str_replace("\\","/",$dir),'/').'/';
 40     if(!file_exists($dir)){
 41         exit("{$dir} is not exists!Check your input!");
 42     }
 43     $dh = opendir($dir);
 44     $size = 0;
 45     readdir($dh);
 46     readdir($dh);
 47     while($fileName = readdir($dh)){
 48         $newFileName = $dir.$fileName;
 49         if(is_file($newFileName)){
 50             $size += filesize($newFileName);
 51         }else if(is_dir($newFileName)){
 52             $newDir = $newFileName.'/';
 53             $size += calc_dir($newDir);
 54         }else{
 55             echo "{$newFileName} Unkown File Type!<br />";
 56         }
 57     }
 58     closedir($dh);
 59     return $size;
 60 }
 61 //文件夹的移动
 62 function cut_dir($dir,$des){
 63     //$dir待移动目录,$des目标目录
 64     if(!file_exists($dir)){
 65         exit($dir.' is not exists!Please check your input!');
 66     }
 67     if(!file_exists($des)){
 68         mkdir($des);
 69     }
 70     $dir = rtrim(str_replace("\\","/",$dir),'/');
 71     if(strrpos($dir,'/')){
 72         $subdir = substr($dir,strrpos($dir,'/')+1);
 73     }else{
 74         $subdir = $dir;
 75     }
 76     $dessub = rtrim(str_replace("\\","/",$des),"/").'/'.$subdir.'/';
 77     $dir = $dir.'/';
 78     if(!file_exists($dessub)){
 79         mkdir($dessub);
 80     }
 81     $dh = opendir($dir);
 82     readdir($dh);
 83     readdir($dh);
 84     while($fileName = readdir($dh)){
 85         $newFileName = $dir.$fileName;
 86         if(is_file($newFileName)){
 87             if(rename($newFileName,$dessub.$fileName)){
 88                 echo $newFileName.'已经移动完成!<br />';
 89             }
 90         }
 91         if(is_dir($newFileName)){
 92             cut_dir($newFileName,$dessub);
 93         }
 94     }
 95     closedir($dh);
 96     if(rmdir($dir)){
 97         echo $dir.'内的文件已经全部移动完成!<hr />';
 98     }
 99 }
100 //文件夹的复制
101 function copy_dir($dir,$des){
102     //$dir待移动目录,$des目标目录
103     if(!file_exists($dir)){
104         exit($dir.' is not exists!Please check your input!');
105     }
106     if(!file_exists($des)){
107         mkdir($des);
108     }
109     $dir = rtrim(str_replace("\\","/",$dir),'/');
110     if(strrpos($dir,'/')){
111         $subdir = substr($dir,strrpos($dir,'/')+1);
112     }else{
113         $subdir = $dir;
114     }
115     $dessub = rtrim($des).'/'.$subdir.'/';
116     $dir = $dir.'/';
117     if(!file_exists($dessub)){
118         mkdir($dessub);
119     }
120     $dh = opendir($dir);
121     readdir($dh);
122     readdir($dh);
123     while($fileName = readdir($dh)){
124         $newFileName = $dir.$fileName;
125         if(is_file($newFileName)){
126             if(copy($newFileName,$dessub.$fileName)){
127                 echo $newFileName.'已经拷贝完成!<br />';
128             }
129         }
130         if(is_dir($newFileName)){
131             copy_dir($newFileName,$dessub);
132         }
133     }
134     closedir($dh);
135 }

 

posted @ 2014-12-20 23:20  北夜  阅读(132)  评论(0)    收藏  举报

@2015 北夜-风晴暮雪