Aller au contenu

supprimer un repertoire


Sujets conseillés

Posté

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

<?php
if ($_GET['action'] == 'suppr') {
unlink('photos_galerie/'.$login_ok[0].'/'.$_GET['name']);}
?>

Posté

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] )

?>

Posté

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.

Posté

Salut Vero,

je ne sais pas a qui tu parle vu que seuls tes messages apparaissent :fou:

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 :whistling: ...

Lolo

Posté

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

  • 3 semaines plus tard...
Posté

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

<?php
if ($_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].'');

}
?>

  • 3 semaines plus tard...
Posté

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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...