-
-
- //統計フォルダー関連情報
- //統計ディレクトリ数
- //フォーマット出力ディレクトリサイズ単位:バイト、KB、MB、GB
-
- function getFolderSize( $ path)
- {
- $totalsize = 0;
- $totalcount = 0;
- $dircount = 0;
- if ($handle = opendir ($path))
- {
- while (false !== ($file = readdir( $ハンドル)))
- {
- $nextpath = $path . '/' . $file;
- if ($file != '.' && $file != '..' && !is_link ($nextpath))
- if (is_dir ($nextpath))
- {
- $dircount++;
- $result = getFolderSize($nextpath);
- $totalsize += $result['size'];
- $totalcount += $result['count'] ;
- $dircount += $result['dircount'];
- }
- elseif (is_file ($nextpath))
- {
- $totalsize += filesize ($nextpath);
- $totalcount++;
- }
- }
- }
- }
- Closedir ($handle);
- $total['size'] = $totalsize;
- $total['count'] = $totalcount;
- $total['dircount'] = $dircount;
- return $total;
- } < ;/p>
//出力情報のフォーマット - function sizeFormat($size)
- {
- $sizeStr='';
- if($size<1024)
- {
- return $size." bytes" ;
- }
- else if($size<(1024*1024))
- {
- $size=round($size/1024,1);
- return $size." KB";
- }
- else if($size< (1024 *1024*1024))
- {
- $size=round($size/(1024*1024),1);
- return $size." MB";
- } bbs.it-home.org
- else
- {
- $ size=round($size/(1024*1024*1024),1);
- return $size." GB";
- }
-
- }
-
- $path="/var/www";
- $ar= getFolderSize( $path);
-
- echo "
表示しているパス: $path";
- echo "ディレクトリ サイズ: ".sizeFormat($ar['size'])。"
echo "ファイル数: ".$ar['count']." "; - echo "ディレクトリ数: ".$ar['dircount']."
"; < ;/p>
//Output
- //print_r($ar);
- ?>
-
-
コードをコピー
例 2、フォルダー サイズを取得する PHP 関数
-
- // フォルダーのサイズを取得します
- function getDirSize($dir)
- {
- $handle = opendir($dir)
- while (false!==($FolderOrFile = readdir($)ハンドル)))
- {
- if($FolderOrFile != "." && $FolderOrFile != "..")
- {
- if(is_dir("$dir/$FolderOrFile"))
- {
- $sizeResult += getDirSize ("$dir/$FolderOrFile");
- }
- else
- {
- $sizeResult += filesize("$dir/$FolderOrFile");
- closedir($handle);
- }
- // 自動単位変換関数
- function getRealSize($size)
- {
- $kb = 1024; // キロバイト
- $mb = 1024 * $kb; // メガバイト
- $gb = 1024;ギガバイト
- $tb = 1024 * $gb; // テラバイト
-
- if($size < $kb)
- {
- return $size." B"
- }
- else if($size < $mb)
- {
- returnround($size/$kb,2)." KB";
- }
- else if($size {
- returnround($size/$mb,2)." MB"; }
- else if($size < $tb)
- {
- returnround($size/$gb,2)." GB"
- }
- else
- {
- returnround($size/$tb,2). " TB";
- }
- }
- echo getRealSize(getDirSize('ディレクトリパス'))
-
-
- コードをコピー
-
-
-
-
|