phpで指定したディレクトリ内のファイルサイズを取得方法が
紹介されていたのでメモ
//PHP4の場合、scandir関数がないので実装しておきます。
if (!function_exists(scandir)) {
function scandir($dir_name, $order = '') {
$dh = opendir($dir_name);
while ( ($filename = readdir($dh)) !== false) {
$file_list[] = $filename;
}
if ($order) {
rsort($file_list);
} else {
sort($file_list);
}
return $file_list;
}
}
//引数 $pathにはディレクトリ、またはファイルの絶対パスを指定。
function getDirSize($path) {
$total_size = 0;
//指定したのがファイルだった場合はサイズを返して終了。
if (is_file($path)) {
return filesize($path);
} elseif (is_dir($path)) {
$basename = basename($path);
//カレントディレクトリと上位ディレクトリを指している場合はここで終了。
if ($basename == '.' || $basename == '..') {
return 0;
}
//ディレクトリ内のファイル一覧を入手。
$file_list = scandir($path);
foreach ($file_list as $file) {
//ディレクトリ内の各ファイルを引数にして、自分自身を呼び出す。
$total_size += getDirSize($path .'/'. $file);
}
return $total_size;
} else {
return 0;
}
}
//関数を実行。
echo getDirsize('/home/asial');