код който изписва големината на дадена папка

малко сложно ще стане но ще се опитам да напиша код който индексира всички файлове и събира големината им

след 20-30 мин ще постна творението ми :)
 
ам сетих се , че преди ми трябваше и бях намерил един готов..
малко е дълъг.. но малко съм спрял напоследък и немога да мисля :?

Код:
<?php
function DirStat($directory) {
	global $FolderCount, $FileCount, $FolderSize;

	chdir($directory);
	$directory = getcwd();
	if($open = opendir($directory)) {
		while(false !== ($file = readdir($open))) {
			if($file == '..' || $file == '.') continue;
			if(is_file($file)) {
				$FileCount++;
				$FolderSize += filesize($file);
			} elseif(is_dir($file)) {
				$FolderCount++;
			}
		}
		if($FolderCount > 0) {
			$open2 = opendir($directory);
			while($folders = readdir($open2)) {
				$folder = $directory.'/'.$folders;
				if($folders == '..' || $folders == '.') continue;
				if(is_dir($folder)) {
					DirStat($folder);
				}
			}
			closedir($open2);
		}
		closedir($open);
	}
}

function ByteSize($bytes) {
	$size = $bytes / 1024;
	if($size < 1024){
		$size = number_format($size, 2);
		$size .= 'kb';
	} else {
		if($size / 1024 < 1024) {
			$size = number_format($size / 1024, 2);
			$size .= 'mb';
		} elseif($size / 1024 / 1024 < 1024) {
			$size = number_format($size / 1024 / 1024, 2);
			$size .= 'gb';
		} else {
			$size = number_format($size / 1024 / 1024 / 1024, 2);
			$size .= 'tb';
		}
	}
	return $size;
}

$folder = 'test'; // тука пишеш името на папката
$dir = getcwd();
DirStat($folder, 0);
chdir($dir);
$FolderSize = ByteSize($FolderSize);

echo '<b>Folder Name:</b> '.$folder.'<br />'.chr(10);
echo '<b>File Count:</b> '.$FileCount.'<br />'.chr(10);
echo '<b>Folder Size:</b>'.$FolderSize.'<br />'.chr(10);
?>
бих ти написал и по кратък , но принципа е един и същ..
обхожда се , събират се големината на всички файлове , ако има под папки се отварят и там се събират големината на файловете и се събират с дргуите и така... :?:
 
аз го преработих малко много благодаря аз щях да си пиша сам ама ме домързя
 

Back
Горе