Liste et taille dossier

Eléphant du PHP | 119 Messages

18 déc. 2007, 18:29

Bonjour je cherche un script qui liste les dossiers d'un répertoire et me rend le nom et la taille de chacun.

Je cherche sur google mais j'ai jamais rien qui fonctionne proprement :)

Donc merci si quelqu'un à un truc comme ça :D

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Mammouth du PHP | 2937 Messages

18 déc. 2007, 18:52

D'une part, nous ne sommes pas là pour tout faire à ta place. :wink:

D'autre part, regarde du côté de scandir() (si tu n'es pas en PHP 5, tu es condamné à opendir() et à readdir()). Quant à filesize(), je ne sais si c'est une fonction valable pour les répertoires.

Mammouth du PHP | 505 Messages

18 déc. 2007, 18:59

En php5, tu as aussi DirectoryIterator de la SPL.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 déc. 2007, 19:06

Modération :
PHPFrance n'est pas un site de distribution de scripts gratuits,
ni de débuggage de scripts téléchargés et utilisés sans compréhension.

Merci de prendre le temps de lire les règlements.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
AB
ViPHP | 5818 Messages

18 déc. 2007, 19:52

... Quant à filesize(), je ne sais si c'est une fonction valable pour les répertoires.
Effectivement faut mettre de côté les répertoirers et faire filesize() sur les fichiers contenus.

Sinon je me suis grandement inspiré de ce script pour faire ça:
http://files.codes-sources.com/fichier. ... taille.php

Eléphant du PHP | 119 Messages

19 déc. 2007, 11:51

Bon j'ai ce code là au final qui fonctionne pour les dossiers en local et pour les dossiers en réseaux:

Code : Tout sélectionner

$chemin='c:/'; $chemin_scan=scandir($chemin); function direcho($path) { global $filetotal, $fullsize, $totaldirs; if ($dir = @opendir($path)) { while (false !== ($file = readdir($dir))) { if (is_dir($path."/".$file)) { if ($file != '.' && $file != '..') { direcho($path."/".$file); $totaldirs++; } } else { $fullsize = $fullsize + @filesize ($path.'/'.$file); $filetotal++; } } closedir($dir); } } $i=2; while($i < count($chemin_scan)){ $rep2=$chemin_scan[$i]; $dir2=$chemin.$rep2; direcho($dir2); echo $dir2; echo ' '; echo round($fullsize / 1024 / 1024, 2); echo 'mo'; echo '<br>'; $i++; }
Si ça peut servir voilà :)