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 }