ホームページ  >  記事  >  php教程  >  phpは特定のディレクトリのサイズを取得します

phpは特定のディレクトリのサイズを取得します

WBOY
WBOYオリジナル
2016-06-21 09:05:39931ブラウズ

大まかに言うと、ディレクトリの下に何層のディレクトリがあるかがわかりません。また、占有されているスペースをカウントする必要があります。フォト アルバム/データベース占有/ネットワーク U ディスクなどのプログラムです

このプログラムの一般的な考え方は、再帰的なルールを使用してディレクトリが占有するスペースを計算し、占有スペースの値をテキスト ファイルに書き込むことです。 .txt ファイルにアクセスしている限り、どのくらいのスペースが占有されているかがわかるため、ユーザーがファイルをアップロードしたり削除したりするたびに、ディスクを頻繁に取得して読み取る必要がなくなります。もちろん、統計結果はデー​​タベースに保存することもできます。

/**
* ファイル: ユーザー ディレクトリの使用サイズを取得します
* 著者: heiyeluren
* 作成: 2005-9-19 16:20
* 更新: 2005-9-19 16:41
 */

/*** 基本機能 ***/

//ディレクトリサイズを計算する
function countDirSize($dir)
{
$handle = opendir($dir);
while (false!==($FolderOrFile = readdir( $handle)))
{
if($FolderOrFile != "." && $FolderOrFile != "..")
{
if(is_dir("$dir/$FolderOrFile")) {
$sizeResult += getDirSize ("$dir/$FolderOrFile")
} else {
$sizeResult += filesize("$dir/$FolderOrFile");
}
}
}
Closedir($handle);
return $sizeResult;
}

//ユーザーファイルサイズの保存
関数saveDirSize($userDir)
{
$userDirSize = countDirSize($userDir);
if (!$fp = fopen($userDir."/dir_size.txt", "w+ ")) {
die("ファイルを開くのに失敗しました" );
} else {
fwrite($fp, $dirSize);
}
}

//ユーザーディレクトリのサイズを取得する
function getDirSize($userDir)
{
$user =addslashes($userDir );
$sizeFile = $userDir."/dir_size.txt";
if (!$fp = fopen($sizeFile, "r") {
return 0;
} else {
$dirSize = fread($fp, filesize($sizeFile));
}
return $dirSize;
}


/*** インスタンスの呼び出し ***/
$user = "heiyeluren";
$userPath = "./user/".$user ;

//ユーザーがファイルの削除やアップロードの操作を行った場合、ディレクトリサイズを再取得する
if ($action == "upload" || $action == "delete") {
saveDirSize($userPath);
}

$userDirSize = getDirSize($userPath)/1024;
echo "ユーザー: ".$user;
echo "占有スペース: ".$userDirSize;

?>




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。