PHP遍历指定文件夹获取路径及大小(包含子文件夹)

简爱代码>PHP2013-2-27 20:1486782

PHP获取指定文件夹下(包含子文件夹)所有文件路径 及 大小

代码如下:

<?php

// 获取指定文件夹 所有文件及大小 (包含子文件夹)  By 【简爱】
function JA_files2arr($dirpath){
  if($dirpath[strlen($dirpath)-1]!="/"){$dirpath.="/";} // 
  static $result_array=array();
  if(is_dir($dirpath)){
    if($handle=opendir($dirpath)){
      while($file=readdir($handle)){
        if($file=="."||$file==".."){continue;} // 排除当前、上级目录
        if(is_dir($dirpath.$file)){
          JA_files2arr($dirpath.$file."/"); // 如果是文件夹 继续遍历
        }else{
          $arr['name'] = $dirpath.$file;    // 文件路径 及 名称
          $size = filesize($dirpath.$file); // 获取大小
          $arr['sizede'] = Get_Size($size); // 格式化大小
          $arr['size'] = $size;
          array_push($result_array,$arr);   // 入栈
        }
      }
      closedir($handle);
    }
  }
  return $result_array;
}

// 格式化文件大小
function Get_Size($fileSize){
  if ($fileSize >= 1073741824){
    $fileSize = round($fileSize / 1073741824, 2) . ' GB';
  }elseif($fileSize >= 1048576){
    $fileSize = round($fileSize / 1048576, 2) . ' MB';
  }elseif($fileSize >= 1024){
    $fileSize = round($fileSize / 1024, 2) . ' KB';
  }else{
    $fileSize = $fileSize . ' Byte';
  }
  return $fileSize;
}


// 使用示例
print_r(JA_files2arr("./")); // 打印当前文件夹
print_r(JA_files2arr("./EMLOG/")); // 打印 EMLOG 文件夹

本文出自简爱博客,转载时请注明出处及相应链接。

评论

  1. sinkery2013-03-02 02:15回复

    其实很简单的说

    1. 简爱2013-03-02 15:47回复

      @sinkery:对于俺这中新手来说  不算简单 留着备用

发表评论

电子邮件地址不会被公开。必填项已用*标注