public static function dirSize($dir) { $size = 0; $flags = \FilesystemIterator::CURRENT_AS_FILEINFO | \FilesystemIterator::SKIP_DOTS; $dirIter = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($dir, $flags)); foreach ($dirIter as $key) { if ($key->isFile()) { $size += $key->getSize(); } } return $size; }
public function testDirSize() { $dir = dirname(__FILE__) . '/dir1'; @mkdir($dir); file_put_contents($dir . '/file1', '1234567890'); file_put_contents($dir . '/file2', range('a', 'z')); is(10 + 26, FS::dirSize($dir)); FS::rmdir($dir); }