zoukankan      html  css  js  c++  java
  • 目录自定义函数

    PHP中并不提供查询目录大小、复制目录、删除有文件的目录的函数,我们需要自己编写

    这个函数只要传递一个url,就能递归查询目录中的文件大小,从而统计出目录大小

     1 <?php
     2     function dirSize($dir){
     3         $dirsize = 0;
     4         $url = opendir($dir);
     5         while($filename = readdir($url)){
     6             $file = $dir.'/'.$filename;
     7             if(!($filename=='.' || $filename=='..')){
     8                 if(is_dir($file)){
     9                     $dirsize += dirSize($file);
    10                 }else{
    11                     $dirsize += filesize($file);
    12                 }
    13             }
    14         }
    15         closedir($url);
    16         return $dirsize;
    17     }

    这个函数需要传递两个url,分别是旧目录和新目录,就能复制该目录及文件

     1 <?php
     2     function copyDir($dirSrc,$dirTo){
     3         if(is_file($dirTo))
     4         {
     5             echo '目标不是目录不能创建!';
     6             return;
     7         }
     8         if(!file_exists($dirTo))
     9         {
    10             mkdir($dirTo);
    11         }
    12         $dir_handle = @opendir($dirSrc);
    13         if($dir_handle)
    14         {
    15             while($filename = readdir($dir_handle))
    16             {
    17                 if($filename!="." && $filename!="..")
    18                 {
    19                     $subSrcFile = $dirSrc . "\".$filename;
    20                     $subToFile = $dirTo . "\".$filename;
    21                      
    22                      if(is_dir($subSrcFile))
    23                      {
    24                          copyDir($subSrcFile, $subToFile);
    25                      }
    26                      if(is_file($subSrcFile))
    27                      {
    28                           copy($subSrcFile, $subToFile);
    29                      }
    30                 }
    31             }
    32             closedir($dir_handle);
    33         }
    34     }

    这个函数只要传递一个url,就能递归删除目录及子目录的文件,从而删除目录

     1 <?php
     2 function rmDirAll($url){
     3     //检测要打开目录是否存在
     4     if(!$dir=@opendir($url)){
     5         return false;
     6     }
     7     while(false !==($file=readdir($dir))){
     8     //排除当前目录与父级目录
     9         if($file!=="."&&$file!==".."){
    10             $file=$url .'/'. $file;
    11             //递归删除目录
    12             if(is_dir($file)){
    13                 rmDirAll($file);
    14             }else{
    15                 if(@unlink($file)){
    16                     continue;
    17                 }else{
    18                     return false;
    19                 }
    20             }
    21         }
    22         if(@rmdir($url)){
    23            return true;
    24         }else{
    25            return false;
    26         }
    27     }
    28 }
  • 相关阅读:
    10/28总结
    10/27总结
    10/26总结
    10/25总结
    10/24总结
    毕业设计第二周整理规划
    毕业设计第一周第五天完成情况汇总
    毕业设计第一周第四天完成情况汇总
    毕业设计第一周第三天完成情况汇总
    毕业设计第一周第二天完成情况汇总
  • 原文地址:https://www.cnblogs.com/HuangWj/p/4363172.html
Copyright © 2011-2022 走看看