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

WBOY
リリース: 2016-06-23 14:03:57
オリジナル
902 人が閲覧しました

以下は、フォルダー内のすべてのファイルとフォルダーのサイズを計算するプログラムです。このフォルダーの下にある
の構造は、
znb1/.buildpath、
znb1/ です。プロジェクト、
znb1/223/s.php、
znb1/settings/newfile.php、
znb1/settings/org.eclipse.php.core.prefs
プログラムを実行すると、znb1/.buildpath と znb1 の 2 つのファイルのみが作成されます。 /.project のサイズが計算されます
これはなぜですか?私が使用するソフトウェアは、次のような wampserver および editplus プログラムです。


function 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 += filesize($filename);
}
return $count }
echo dirsize ('znb1' ) ;

?>


ディスカッションへの返信 (解決策)
if (is_dir ( $filename )) {

$file の場合、この相対パスは現在のディレクトリで検索されます。自然報告の偽が見つかりません

パスを持参する必要があります!
if (is_dir ( $filename )) {

$count += dirsize ( $filename );

関数 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[] = filesize($filename)."@".$filename;
} else if (is_dir($filename)){
if ($file != ". " && $file != "..") {
dirsize($filename);
}
}
}
}

return $count;
} else {
return false;
}
}
$path = " D:APMServ5.2.6wwwhtdocslocalhost";
$c = dirsize($path);
var_dump($c);
+---------------------- ------------------------------------------+
少し変更すれば可能です申し訳ありませんが、相対的な道路強度をテストしたことはありません。参考にしてください。

フォルダーをトラバースするために私が書いた関数を教えてください

参照できます: http://www.bacysoft.cn/thread-77-1-1.html

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート