ホームページ >バックエンド開発 >PHPチュートリアル >このプログラムがフォルダー内のすべてのファイルとフォルダーをスキャンできないのはなぜですか?

このプログラムがフォルダー内のすべてのファイルとフォルダーをスキャンできないのはなぜですか?

WBOY
WBOYオリジナル
2016-06-13 12:50:32806ブラウズ

このプログラムがフォルダー内のすべてのファイルとフォルダーをスキャンできないのはなぜですか?
以下は、フォルダー内のすべてのファイルとフォルダーのサイズを計算するプログラムです。このフォルダーの下にあるフォルダー「znb1」のサイズを計算するように依頼しました。 構造は
です znb1/.buildpath、
znb1/.プロジェクト、
znb1/223/s.php、
znb1/settings/newfile.php,
znb1/settings/org.eclipse.php.core.prefs
プログラムの実行後、znb1/.buildpath と znb1/.project の 2 つのファイルのサイズのみが計算されます
何故ですか?私が使用するソフトウェアは wampserver で、editplus プログラムは次のとおりです:


関数 dirsize($dirname) {
$dir = opendir ( $dirname );
while ( ($file = readdir ( $dir )) !== FALSE ) {
$filename=$dirname.'\'.$file;
if ($file != '.' && $file != '..') {

if (is_dir ( $file )) {

$count = dirsize ( $file );
} else {
$count = ファイルサイズ($ファイル名);
}
}
}
$count を返します;
}
echo dirsize ( 'znb1' );

?>


-----解決策---------if (is_dir ( $filename ) ) {
$file の場合、この相対パスは現在のディレクトリ内で検索されます。見つかりません。当然のレポートは false

-----解決策---------set_time_limit(0);
関数 dirsize($dirname) {
if (is_dir($dirname)) {
$dir = opendir ($dirname);
if ($dir != false) {
while ( ($file = readdir ($dir)) !== FALSE ) {
$filename = $dirname.'\'.$file;
if (is_file($filename)){
$count[] = ファイルサイズ($ファイル名)."@".$ファイル名;
} else if (is_dir($filename)){
if ($file != "." && $file != "..") {
dirsize($filename);
}
}
}
}

$count を返します;
} else {
false を返します;
}
}
$path = "D:APMServ5.2.6wwwhtdocslocalhost";
$c = dirsize($path);
var_dump($c);
------------------------
修正後は相対的な道路強度を計算できませんので参考にしてください。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。