vero Posté 1 Mai 2006 Posté 1 Mai 2006 bonjour, j'ai un repertoire A dans lequel j'ai une image 1.jpg et un autre repertoire thumb qui contient une image 1.jpg je cherche quand l'image de A est supprimée (ou que le repertoire est vide) que le repertoire thumb et son image soit aussi supprimé. pour supprimer la photo voila mon code <?phpif ($_GET['action'] == 'suppr') {unlink('photos_galerie/'.$login_ok[0].'/'.$_GET['name']);}?>
vero Posté 4 Mai 2006 Auteur Posté 4 Mai 2006 merci pour ce complement d'information mais dans mon cas le repertoire A n'est pas vide il contient un repertoire thumb et au moins une ou plusieurs images. dans le code le nom du repertoire A = '.$login_ok[0].' <?php if ($_GET['action'] == 'suppr') { unlink('photos_galerie/'.$login_ok[0].'/' .$_GET['name']); } bool rmdir ( string photos_galerie/'.$login_ok[0].'/ [, resource context] )?>
vero Posté 5 Mai 2006 Auteur Posté 5 Mai 2006 merci pour la réponse mais il faut que je decrive plus precisement mon application. Je telecharge dans un dossier A des photos, à chaque fois ca genere dans ce dossier A un dossier thumb et des photos. Quand l'utilisateur va sur la page il voit le contenu du dossier A et chaque photo à un lien pour la supprimer du dossier A. C'est la qu'interviens ma recherche car je voudrai sans que l'utilisateur ai rien à faire que le programme apres la suppression d'une image verifie si le dossier A contient encore une photo et que si le resultat est : il n'y a pas de photo le dossier A soit effacé ainsi que le dossier thumb et son contenu. voila apparemment pas simple à mettre en code.
destroyedlolo Posté 5 Mai 2006 Posté 5 Mai 2006 Salut Vero, je ne sais pas a qui tu parle vu que seuls tes messages apparaissent Pour ton probleme, c'est simplissime : tu fais @rmdir('A/thumb');_AT_rmdir('A'); car cette fonction ne supprime le repertoire que s'il est vide ... Lolo
vero Posté 5 Mai 2006 Auteur Posté 5 Mai 2006 merci pour ta reponse mais cela ne repond pas tout à fait à ma question car le repertoire A n'est pas vide puisqu'il y a le dossier thumb à l'interieur et je ne peux pas supprimer le dossier thumb par _AT_rmdir('A/thumb'); car il contient un fichier avec un numero aleatoire generé à la publication de la premiere image que je ne peux maitriser. Cordialement
spyjo Posté 21 Mai 2006 Posté 21 Mai 2006 http://aidan.dotgeek.org/repos/v/function.rmdirr.php cette personne a fait une fonction récursive qui permet de supprimer un dossier dans sa totalité.
vero Posté 21 Mai 2006 Auteur Posté 21 Mai 2006 merci mais le sujet a avancé et n'est plus le meme maintenant. il s'agit avec le script ci dessous d' effacer des images dans un repertoire et supprimer le repertoire si il ne contient pas de photo mais quand il y a des photos il me genere ce message d'erreur comment puis je le supprimer "Directory not empty". merci d'avance <?phpif ($_GET['action'] == 'suppr') {unlink('photos_galerie/'.$login_ok[0].'/'.$_GET['name'] );unlink('photos_galerie/'.$login_ok[0].'/thumb/'.$_GET['name'] );rmdir('photos_galerie/'.$login_ok[0].'/thumb');rmdir('photos_galerie/'.$login_ok[0].'');}?>
nhood75 Posté 12 Juin 2006 Posté 12 Juin 2006 Salut ! Bon je crois que j'ai la solution a ton problème. Je me suis retrouvé confronté au même problème. La difficulté réside dans le fait qu'un répertoire ne sera pas supprimé tant qu'il n'est pas vide de son contenu, que ce soit des fichiers (ça encore ça va) ou d'autres répertoires (ce qui rend les choses franchement plus compliquée !). La seule solution: une fonction récursive! Voici le code de la fonction: function del_dir($dir) { $current_dir = opendir($dir); while($entryname = readdir($current_dir)) { if(is_dir("$dir/$entryname") and ($entryname != "." and $entryname!="..")) { del_dir("${dir}/${entryname}"); } elseif($entryname != "." and $entryname!="..") { unlink("${dir}/${entryname}"); } } //Fin tant que closedir($current_dir); rmdir(${dir}); } Dans ton code à toi il suffira d'appeller la fonction par del_dir("ton répertoire à supprimer"); Voilou, @+, Robin Rumeau
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant