PHPSECLIB读取目录的总大小?

时间:2017-09-21 19:51:27

标签: php sftp phpseclib

echo $sftp->size('foldername');

此代码仅返回目录4096的默认大小

如何读取包含许多文件的目录/文件夹的总大小,已用空间?

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:3)

要使用SFTP执行此操作,我猜您可以执行此类操作(未经测试):

$size = 0;
$files = $sftp->rawlist('foldername', true);
foreach ($files as $file) {
    $size+= $file['size'];
}

请注意使用SFTP can be slow的递归目录列表。

或者,您可以$sftp->exec('du -s foldername');。这是最快的方式。由于SFTP使用phpseclib扩展SSH2 exec是一种有效的方法。