IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

[langage] effacer un dossier


Sujet :

Langage Perl

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [langage] effacer un dossier
    Bonjour,

    je voudrais créer une petite routine qui effacerait tous les fichiers contenus dans un dossier sur le serveur.

    Comment puis-je faire?

  2. #2
    Jeh
    Jeh est déconnecté
    Membre actif Avatar de Jeh
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Points : 250
    Points
    250
    Par défaut
    Une idée serait de lister le contenu de ton répertoire via une commande système (ls) de rediriger le resultat de cette commande dans un fichier (en dehors du repertoire éventuellement), de lire ce fichier, chaque ligne correspondant à un fichier à supprimer.
    Voilà pour le cas où il n'y a que des fichiers dans ton répertoire, sinon c'est un peu plus compliqué mais encore très très faisable !

    [/code]
    Verre vide je te plains, verre plein, je te vide.

  3. #3
    En attente de confirmation mail
    Inscrit en
    Mars 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 67
    Points : 75
    Points
    75
    Par défaut
    tu peux effacer le répertoire et le recréer.
    Il y a la librairie File:ath qui fait ça avec mkpath et rmtree

    sinon, si tu ne veux effacer que le contenu (fichiers + répertoires) tu pourrais faire un truc dans le style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    use File::Path;
     
    sub effaceContenuRep    {
     
        my $rep = shift @_;
        my (@fichiers,$fic);
     
        opendir(DIR,$rep) || return("Impossible d'ouvrir $rep\n");       
        @fichiers = readdir(DIR);
        closedir(DIR);
     
        foreach $fic (@fichiers) {
     
            if (($fic ne ".") && ($fic ne "..")) {
     
                if (-d "$rep/$fic") {
                    rmtree(["$rep/$fic"], 1, 1);
                }
                else {
                    unlink("$rep/$fic") || return("Impossible d'effacer $rep/$fic\n");
                }
            }
        }
        return '';
    }
    mais il existe peut-être une fonction qui fait déjà ça.

  4. #4
    Membre actif

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 77
    Points : 204
    Points
    204
    Par défaut
    Citation Envoyé par Jeh
    Une idée serait de lister le contenu de ton répertoire via une commande système (ls) de rediriger le resultat de cette commande dans un fichier (en dehors du repertoire éventuellement), de lire ce fichier, chaque ligne correspondant à un fichier à supprimer.
    Voilà pour le cas où il n'y a que des fichiers dans ton répertoire, sinon c'est un peu plus compliqué mais encore très très faisable !

    [/code]
    en Perl, pourquoi ne pas utiliser tout simplement la commande rm avec les options -rf
    * -r pour parcourir de manière récursive les répertoires
    * -f pour ne pas demander de confirmation de suppression

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("rm -rf dossier");

  5. #5
    En attente de confirmation mail
    Inscrit en
    Mars 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 67
    Points : 75
    Points
    75
    Par défaut
    oui, mais cela efface le répertoire d'origine: je ne sais pas si c'est le but...
    sinon, il faut le recréer après, avec les mêmes droits, propriétaires, groupes...

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    j ai trouver!

    j execute ce code et ca fonctionne nickel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach (<Temp/*.csv>)
    {
      unlink($_);
    }
    merci a tous

  7. #7
    En attente de confirmation mail
    Inscrit en
    Mars 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 67
    Points : 75
    Points
    75
    Par défaut
    et si ton répertoire contient des sous-répertoires?

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    je suis sur qu il n en contiendra jamais car il est uniquement destiné a recevoir des fichier .csv généré par un programme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Effacer un war sans effacer le dossier déployé
    Par mystar dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 01/06/2007, 01h29
  2. effacer un dossier
    Par Jérémy Lefevre dans le forum C
    Réponses: 9
    Dernier message: 04/04/2007, 10h35
  3. Effacer fichier/dossier de + de xjrs
    Par darksnake dans le forum VBScript
    Réponses: 3
    Dernier message: 13/12/2006, 16h50
  4. [langage] Effacer une ligne dans un fichier
    Par sebi77 dans le forum Langage
    Réponses: 2
    Dernier message: 01/01/2005, 12h43
  5. [langage] Création de dossier en chemin absolu
    Par Jibees dans le forum Langage
    Réponses: 4
    Dernier message: 25/04/2003, 10h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo