Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php filesize()不显示实际大小_Php_Filesize - Fatal编程技术网

Php filesize()不显示实际大小

Php filesize()不显示实际大小,php,filesize,Php,Filesize,可能重复: 我在一个目录中有5个文件,它显示的文件大小为4096,但当我删除4个文件,只剩下1个文件时,它仍然显示相同的大小。 这就是我获取文件大小的方式 echo filesize("user_files/".$uid."/".$rs['DirectoryName']); 应用于目录的filesize不会给出目录内容的大小。它返回文件系统节点的大小,在您的示例中,该大小为4kb。此大小取决于目录中文件的数量 要获得内容的实际大小,您需要获得每个文件的大小并对其进行汇总。您可以像这样获得文件

可能重复:

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

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

应用于目录的
filesize
不会给出目录内容的大小。它返回文件系统节点的大小,在您的示例中,该大小为4kb。此大小取决于目录中文件的数量


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

您可以像这样获得文件夹的总大小和子目录

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

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


filesize()
不会告诉您目录中所有文件的大小,只会告诉您目录本身的大小。但是如果删除3或4个文件后,文件夹的大小不是4096,那么为什么它会显示相同的大小?@Ali Hassan:因为4kb大小的目录节点可以容纳数百个文件。因此,它要么存储0个文件,要么存储100个文件——它的大小无论如何都是4kb