filesize()没有显示实际大小

时间:2012-10-11 01:58:39

标签: php filesize

  

可能重复:
  PHP – get the size of a directory

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

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

2 个答案:

答案 0 :(得分:8)

应用于目录的

filesize不会给出其内容的大小。它返回文件系统节点的大小,在您的情况下,需要4kb。此大小取决于目录中文件的金额

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

答案 1 :(得分: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的文件返回意外结果。