PHPSECLIB读取目录的总大小?
问题描述:
echo $sftp->size('foldername');
此代码仅返回目录的缺省大小4096PHPSECLIB读取目录的总大小?
我怎样才能读取的总大小,使用的目录的空间/包含多个文件夹?
非常感谢您的帮助!
答
要做到这一点与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
是一种有效的方法。
+1 - 虽然值得注意的是'$ sftp-> exec('du -s foldername')'不再是SFTP解决方案。它需要shell访问权限,并且是* nix特定的。 –
谢谢你们的帮助。我会尝试你的建议 –