Page 1 sur 1

Liste et taille dossier

Posté : 18 déc. 2007, 18:29
par saebakun
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]

Posté : 18 déc. 2007, 18:52
par Victor BRITO
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.

Posté : 18 déc. 2007, 18:59
par titerm
En php5, tu as aussi DirectoryIterator de la SPL.

Posté : 18 déc. 2007, 19:06
par zeus
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.

Posté : 18 déc. 2007, 19:52
par AB
... 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

Posté : 19 déc. 2007, 11:51
par saebakun
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à :)