Bonjour,
je voudrais créer une petite routine qui effacerait tous les fichiers contenus dans un dossier sur le serveur.
Comment puis-je faire?
Bonjour,
je voudrais créer une petite routine qui effacerait tous les fichiers contenus dans un dossier sur le serveur.
Comment puis-je faire?
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]
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:
mais il existe peut-être une fonction qui fait déjà ça.
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 ''; }
en Perl, pourquoi ne pas utiliser tout simplement la commande rm avec les options -rfEnvoyé par Jeh
* -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");
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...
j ai trouver!
j execute ce code et ca fonctionne nickel
merci a tous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 foreach (<Temp/*.csv>) { unlink($_); }
et si ton répertoire contient des sous-répertoires?
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager