简爱博客
PHP遍历指定文件夹获取路径及大小(包含子文件夹)
2013-2-27 简爱

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 文件夹

评论:
简爱
2013-03-02 15:47 回复
@sinkery:对于俺这中新手来说  不算简单 留着备用
sinkery
2013-03-02 02:15 回复
其实很简单的说