/** * @en Gets file or directory size in bytes * @ru Получает размер файла или директории в байтах * * $file_size = filesystem::size('file.txt'); # int(18) # 18 bytes * * $dir_size = filesystem::size('/srv/http/'); # int(8168620229) # 7790.2 megabytes * * @param string $path File path * * @return int */ public static function size($path) { if (filesystem::is_file($path)) { return filesize($path); } $size = 0; foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path)) as $file) { /** @var \SplFileInfo $file */ $size += $file->getSize(); } return $size; }