[perl] Connaitre la taille d'un répertoire, comment ?

Connaitre la taille d'un répertoire, comment ? [perl] - Perl - Programmation

Marsh Posté le 10-05-2003 à 13:17:03    

Bonjour,
 
je souhaiterais connaitre la taille, en octet d'un répertoire.
Soit $name le nom de mon répertoire.
 
J'ai bien essayé  
 
$taillef = (stat "${path_perso}/$name" )[7];
 
mais on me renvoie tuoujours la même valeur (4), alors que ça fonctionne bien avec les fichiers.
 
Merci de votre aide.

Reply

Marsh Posté le 10-05-2003 à 13:17:03   

Reply

Marsh Posté le 11-05-2003 à 12:51:56    

il faut que tu additionne les tailles de tous les fichiers de ton rep:
 
(non testé)

Code :
  1. opendir(DIR, ${path_perso}/$name) or die "impossible d'ouvire $name: $!";
  2. my $taillef = 0;
  3. while (defined($file = readdir(DIR))) {
  4.     if ($file !~ /^\.\.?$/) {
  5.         # pas '..' et '.'
  6.         $taillef += (stat $file)[7];
  7.     }
  8. }
  9. closedir(DIR);
  10. print $taillef;


 
apres si ton repertoir contient d'autres repertoires et que tu veut tout parcourir recurssivement il faut faire un truc du genre File::Find
 

Reply

Marsh Posté le 15-05-2003 à 10:43:15    

ethan, si tu ne me dit pas ne seraisse k'un petit merci pour ma réponse je vais me facher tout plein!
C'est pas al premiere fois que je reponde à tes questions, et à d'autres, et c'est à chaque fois pareil:
 
si ca marche pas ou que ca répond pas exactement à la question alros la on s'en prends plein la gueule, mais si ca répond alors la c'est silence radio, aucune réponse, rien!
 
Je recherche pas particulierement les remerciements, je répond à une question si je connais la réponse pour aider et c'est tout, pas poru me faire mousser, mais je trouve normale d'avoir un minimum de gratitude envers kk1 qui s'est donné la peine de prendre qq minutes pour essayer de t'aider à résoudre un problème!
alors bon ca se trouve tu allais justement ecrire un joli post de remerciement, aisni qu'au autres reponse que je t'avais posté puisque tu viens de rentrer de tes vacances en pathagonie (meme si tu a posté d'autres questions entre-temps), mais voila koi c'est juste un coup de gueule!!!!
 
Kand je pose une question sur ce forum et k'on m'apporte une réponse, je remerci toujours la personne, meme si la réponse ne me convient pas exactement. C'est une simple regle de SAVOIR VIVRE de base et je vous assure qu'il n'y a que sur les forums francais k'elle n'est pas appliquée!

Reply

Marsh Posté le 15-05-2003 à 12:37:54    

Salut,
 
OK, merci pour ta réponse...tu as raison, ce n'est pas trés poli de ma part de ne pas répondre :-)
 
Pour info, cela semble marcher chez moi... donc, merci..
 
en fait, j'ai aussi posté sur le NG fr.comp.lang.perl (un truc comme ça) et j'ai eu la réponse là-bas, donc je n'ai pas pensé à revenir ici...
 
Je te promet que je dirai merci la prochaine fois dans la mesure ou je dois bien admettre que tu as raison....
honte à moi :-))

Reply

Marsh Posté le 15-05-2003 à 15:45:41    

Ethan_Carter a écrit :

Salut,
 
OK, merci pour ta réponse...tu as raison, ce n'est pas trés poli de ma part de ne pas répondre :-)
 
Pour info, cela semble marcher chez moi... donc, merci..
 
en fait, j'ai aussi posté sur le NG fr.comp.lang.perl (un truc comme ça) et j'ai eu la réponse là-bas, donc je n'ai pas pensé à revenir ici...
 
Je te promet que je dirai merci la prochaine fois dans la mesure ou je dois bien admettre que tu as raison....
honte à moi :-))


 
Ok désolé de m'etre emporté. Ce n'etait pas forcément dirigé vers toi, c'est simplement que je trouve que c'est une pratique hélas trop courante sur ce forum...
Je repondrais (du moins j'essayrais) avec plaisir à tes questions si je peux.
a+

Reply

Marsh Posté le 15-05-2003 à 20:27:30    

Salut,
 
Non, ne t'excuse pas... en plus, j'ai pu constaté que tu répondais tjs à mes questions de façon serieuse, donc c'était trés malpoli de ma part de ne pas dire merci...
Malheurusement, c'est un comportement que j'ai assez souvent sur les forums internet, alors ta remarque m'a fait réfléchir ... dans le bon sens.
 
A bientôt
Nico

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed