PHP展示目录、复制目录、删除目录

PHP文件操作函数

  1、递归展示目录中的所有文件以及文件夹:  

 1 /**
 2  * [列出目录下的所有文件以及文件夹]
 3  * @param  [type]  $path  [目录路径]
 4  * @param  integer $level [递归深度]
 5  * @return [type]         [description]
 6  */
 7 function filelist($path,$level=0){
 8     echo str_repeat('--',$level).iconv('gbk','utf-8',$path).'<br>';
 9     if($handle = opendir($path)){
10         while(($filename = readdir($handle)) !== false){
11             if($filename == '.' || $filename == '..') continue;
12             $file_path = $path . '/' .$filename;
13             if(is_dir($file_path)){
14                 filelist($file_path,$level+1);
15             }else{
16                 echo str_repeat('--',$level+1),iconv('gbk','utf-8',$filename),'<br>';
17             }
18         }
19         closedir($handle);
20     }else{
21         echo "文件不存在";
22     }
23 }

  2、复制目录中的文件以及文件夹

 1 /**
 2  * 复制目录
 3  * @param  [type] $src  [源目录]
 4  * @param  [type] $desc [目标目录]
 5  * @return [type]       [description]
 6  */
 7 function myCopy($src,$desc){
 8     if($handle = opendir($src)){
 9         if(!file_exists($desc)){
10             mkdir($desc,0775,true);
11         }
12 
13         while(($filename = readdir($handle)) !== false){
14             if($filename == '.' || $filename == '..') continue;
15             $file_path = $src.'/'.$filename;
16             if(is_dir($file_path)){
17                 myCopy($file_path,$desc.'/'.$filename);
18             }else{
19                 copy($file_path,$desc.'/'.$filename);
20             }
21         }
22         closedir($handle);
23     }else{
24         echo '目录不存在';
25     }
26 }

 

  3、删除目录 

 1 /**
 2  * 移除文件夹及其子目录
 3  * @param  [type] $path [要删除的目录]
 4  * @return [type]       [description]
 5  */
 6 function delete($path){
 7     if($handle = opendir($path)){
 8         while(($filename = readdir($handle)) !== false){
 9             if($filename == '.' || $filename == '..') continue;
10             $file_path = $path . '/' . $filename;
11             if(is_dir($file_path)){
12                 delete($file_path);
13             }else{
14                 //如果是文件,就执行删除
15                 unlink($file_path);
16             }
17         }
18         closedir($handle);
19         rmdir($path);
20     }else{
21         echo '目录打开失败 ';
22     }
23 }

 

posted @ 2016-12-11 18:01  少年飞刀  阅读(209)  评论(0编辑  收藏  举报