2017-09-21 5 views
2
echo $sftp->size('foldername'); 

Ce code renvoie uniquement la taille par défaut du répertoire 4096PHPSECLIB lire la taille totale du répertoire?

Comment puis-je lire la taille totale, l'espace utilisé du répertoire/dossier qui contient de nombreux fichiers?

Merci beaucoup pour votre aide!

Répondre

2

Pour ce faire, avec SFTP Je suppose que vous pourriez faire quelque chose comme ça (non testé):

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

Notez que les listes de répertoires récursive avec SFTP can be slow.

Vous pouvez également faire $sftp->exec('du -s foldername');. Ce serait le moyen le plus rapide. Depuis SFTP étend SSH2 avec phpseclib exec est une méthode valide.

+1

+1 - Bien qu'il soit intéressant de noter que '$ sftp-> exec ('du -s foldername')' n'est plus une solution SFTP. Il nécessite un accès shell et est spécifique à * nix. –

+0

merci les gars pour votre aide. je vais essayer ta suggestion –