2

可能重复:
PHP – 获取目录的大小

我在一个目录中有 5 个文件,它显示文件大小 = 4096,但是当我删除 4 个文件并且只剩下 1 个文件时,它仍然显示相同的大小。这就是我获取文件大小的方式

echo filesize("user_files/".$uid."/".$rs['DirectoryName']);
4

2 回答 2

8

filesize应用于目录并没有给出其内容的大小。它返回文件系统节点的大小,在您的情况下,它占用 4kb。这个大小取决于目录中文件的数量

要获取内容的实际大小 - 您需要获取每个文件的大小并对其进行汇总。

于 2012-10-11T02:00:30.453 回答
1

您可以像这样获取您的总文件夹大小及其子目录

$dir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__, FilesystemIterator::SKIP_DOTS));
$size = 0;
foreach ( $dir as $file ) {
    $size += $file->getSize();
}
var_dump($size);

另请注意

因为 PHP 的整数类型是有符号的,并且许多平台使用 32 位整数,所以对于大于 2GB 的文件,某些文件系统函数可能会返回意外结果。

于 2012-10-11T02:02:48.283 回答