suppression d'un repertoire

suppression d'un repertoire - Perl - Programmation

Marsh Posté le 18-09-2007 à 09:48:19    

salut,
 
J'essai de supprimer un repertoire à l'aide de perl,
 
j'ai essayer ses deux commandes mais ça ne fonctionne pas
 

Code :
  1. rmdir("$env/pbl/alfred/$num" );


 

Code :
  1. rmtree(["$env/pbl/alfred/$num"], 1, 1);


 
je ne comprend pas pourquoi ??
 
merci

Reply

Marsh Posté le 18-09-2007 à 09:48:19   

Reply

Marsh Posté le 18-09-2007 à 11:53:33    

Salut,
 
1/ que te retourne ton programme Perl (message d'erreur ??).
2/ as-tu vérifié qu'il n'y a pas de problèmes de droits ?
 
Avec rmdir, tu ne peux pas supprimer un répertoire non vide.
Pour utiliser rmtree, il te faut le module File:: Path.
 

Code :
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use File::Path;
  4. my($dir,$nb);
  5. print "Saisir nom répertoire\n";
  6. $dir=<STDIN>;
  7. chomp($dir);
  8. if(rmtree([$dir], 1, 1)!=0)
  9. {
  10.     print "Suppression de $dir\n";
  11. }
  12. else
  13. {
  14.     print "Erreur lors de la suppression de $dir.\n";
  15. }
  16. exit(1);


 
A+ ;)


Message édité par Ricolla75 le 18-09-2007 à 11:54:09

---------------
Pour mon mémoire de recherche sur les spams faîtes vous plaisir: user2@memoire-spam.info
Reply

Marsh Posté le 18-09-2007 à 11:56:12    

en faite il ne renvoi rien
et j ai bien le module File::Path
 
en faite si je comprends bien, si mon folder est vide rmdir ne le supprimera pas, c'est bien cela ?

Reply

Marsh Posté le 18-09-2007 à 12:01:16    

non c'est l'inverse ;)
 
rmdir ne supprime que les répertoires vides.
rmtree supprime même les répertoires non vides (équivalent de la commande rm -r <nom_repertoire> ).
 
A+ ;)


---------------
Pour mon mémoire de recherche sur les spams faîtes vous plaisir: user2@memoire-spam.info
Reply

Marsh Posté le 18-09-2007 à 13:25:22    

je viens de tester avec ton bou de code et j'ai ce message
print "Erreur lors de la suppression de $dir
mais comment savoir d'ou provient et qu'elle est l'erreur
vu que je n'ai rien qui s'affiche

Reply

Marsh Posté le 18-09-2007 à 15:02:14    

Bizarre, moi ca marche (que ce soit sous Windows ou Linux).
 
Tu as les bons droits sur le répertoire et sur tous les fichiers qui s'y trouvent ?


---------------
Pour mon mémoire de recherche sur les spams faîtes vous plaisir: user2@memoire-spam.info
Reply

Marsh Posté le 18-09-2007 à 15:25:06    

ouai je pense
en tous cas les droit sur le folder c'est cela donc je pense que c'est bon
drwxrwsr-x

Reply

Marsh Posté le 19-09-2007 à 12:23:36    

Ca depend si tu es owner du fichier ou dans le groupe du fichier, ou non.
 
Puis aussi, si tu mettais un "or die $!" à la fin de tes commandes, ça aiderait à comprendre où est le problème...


Message édité par matafan le 19-09-2007 à 12:25:28
Reply

Marsh Posté le 19-10-2007 à 13:06:31    

sinon `rm $env/pbl/alfred/$num`;
 
Attention c'est des cotes de biais.

Reply

Sujets relatifs:

Leave a Replay

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