Vider un répertoire

Messages postés
10
Date d'inscription
mardi 6 janvier 2004
Dernière intervention
18 février 2007
- - Dernière réponse :  hak - 31 janv. 2019 à 16:27
bonjour,

je souhaiterais savoir comment faire pour vider un répertoire en PHP (supprimer tous les fichiers qu'il contient)

merci
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
455
Date d'inscription
dimanche 9 février 2003
Dernière intervention
9 juillet 2004
1
1
Merci
exécute ce code dans un autre dossier que celui à vider :
<?
$dossier="dossier_a_vider";
$ouverture=opendir($dossier);
$fichier=readdir($ouverture);
$fichier=readdir($ouverture);
while ($fichier=readdir($ouverture)) {
unlink("$dossier/$fichier");
}
closedir($ouverture);
?>

Houzéf@

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS-SourceS

Codes Sources 92 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Houzefa
Messages postés
10
Date d'inscription
mardi 6 janvier 2004
Dernière intervention
18 février 2007
1
1
Merci
merci beaucoup !!

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS-SourceS

Codes Sources 92 internautes nous ont dit merci ce mois-ci

Commenter la réponse de sel31
Messages postés
438
Date d'inscription
vendredi 20 septembre 2002
Dernière intervention
20 novembre 2004
0
Merci
tu a ecris 2 fois la meme ligne et tu ne gere pas le dossier courant et précedent jaurais dit ceci :

$dossier="dossier_a_vider";
$dir = opendir($dossier);  
while($file = readdir($dir)) {  
if($file!=in_array($file, array(".",".."))){
unlink("$dossier/$file");
}
} 
closedir($dir); 


pense récursivité pouir suprimmer les fichiers contenus dans le repertoire du repertoire courant

\-> Defkrie !?!
Commenter la réponse de defkrie
Messages postés
455
Date d'inscription
dimanche 9 février 2003
Dernière intervention
9 juillet 2004
1
0
Merci
ca revient exactement au meme mais pour 2 lignes je vois pas vraiment l'intéret je suis sur que mon code est + rapide que le tient car le tien fait intervenir un array qui est défini à chaque récurrence de la boucle while et ca ralentit le script.
mes 2 premières lignes permettent justement d'éliminer cette vérification inutile car elle n'intervient qu'au début de la boucle ; ensuite la vérification ne sert à rien.

... j'ai pas envie de m'engager dans un "débat", mais si tu m'y forces, ya pas de pb... lol ...

Houzéf@
Commenter la réponse de cs_Houzefa
Messages postés
438
Date d'inscription
vendredi 20 septembre 2002
Dernière intervention
20 novembre 2004
0
Merci
je voulias juste signaler que tu avais écrir 2 fois $fichier=readdir($ouverture);
$fichier=readdir($ouverture);

et pour éviter un probleme vis à vis du repertoire courant et précedent qd tu fais le while il était préférable d'enlever "." et ".." sinon il est possible que unlink anoonce une erreur.

ct tout sans entre ds un débat.
\-> Defkrie !?!
Commenter la réponse de defkrie
Messages postés
455
Date d'inscription
dimanche 9 février 2003
Dernière intervention
9 juillet 2004
1
0
Merci
justement c'est fait exprès si j'ai écrit 2 fois cette ligne c'est pour éliminer les dossiers "." et "..". comme ca dans le while c'est plus la peine de vérifier la présence de ces dossiers.

le script pourrait se commenter comme ca :

<?
$dossier="dossier_a_vider";
$ouverture=opendir($dossier);
$fichier=readdir($ouverture); // dossier "."
$fichier=readdir($ouverture); // dossier ".."
while ($fichier=readdir($ouverture)) {
unlink("$dossier/$fichier");
}
closedir($ouverture);
?>


Houzéf@
Commenter la réponse de cs_Houzefa
Messages postés
10
Date d'inscription
mardi 6 janvier 2004
Dernière intervention
18 février 2007
1
0
Merci
ben vous avez fini !!!!
:)
je pensais pas être au centre d'une telle discussion

biz :big)
Commenter la réponse de sel31
Messages postés
438
Date d'inscription
vendredi 20 septembre 2002
Dernière intervention
20 novembre 2004
0
Merci
exact Houzefa
jai pour habitude de verifier apres mais comme tu fais sa fonctionne et sait plus propre.
voila sel31.
@+
\-> Defkrie !?!
Commenter la réponse de defkrie

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.