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 PHP Discussion :

Supprimer un répertoire


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 77
    Points : 37
    Points
    37
    Par défaut Supprimer un répertoire
    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é.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Quel est le problème?

    Quand l'utilisateur veut supprimer une image, tu supprimes en même temps le thumb et à chaque fois tu testes si le répertoire est vide. Si oui, tu les supprimes tous les 2.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 77
    Points : 37
    Points
    37
    Par défaut
    pour supprimer la photo voila mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    if ($_GET['action'] == 'suppr') {
    unlink('photos_galerie/'.$login_ok[0].'/'.$_GET['name']);
    }
    ?>
    mais pour la suite il faut m'aider ....

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Ya tout ce qu'il te faut ici. Regarde du coté de opendir, readdir, rmdir...
    Essaie aussi un ptit recherche sur le forum, la question a déjà été posée.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 77
    Points : 37
    Points
    37
    Par défaut
    merci billoum mais si je viens ici c'est que je suis perdu alors je vais attendre une reponse un peu plus concrete.

  6. #6
    Invité
    Invité(e)
    Par défaut
    c concret sa réponse je trouve, il te donne les fonctions a utilisé : opendir,readdir, rmdir

    pour les utiliser tu regardes dans le manuel , il y a des exemples.

    bool rmdir ( string dirname [, resource context] )
    rmdir() tente d'effacer le dossier dont le chemin est dirname. Le dossier doit être vide, et le script doit avoir les autorisations adéquates.


    je trouve ça clair mais si tu as encore des pb nhesite pas

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 77
    Points : 37
    Points
    37
    Par défaut
    merci pour ce complement d'information mais dans mon cas le repertoire A n'est pas vide il contient un repertoire thumb qui contient une ou plusieurs images.
    Si je resume quand le dossier A ne contient pas d'image il faut supprimer tout le repertoire A y compris le dossier thumb et ses images.


    dans le code le nom du repertoire A = '.$login_ok[0].'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php 
    if ($_GET['action'] == 'suppr') { 
    unlink('photos_galerie/'.$login_ok[0].'/' .$_GET['name']); } 
    bool rmdir ( string photos_galerie/'.$login_ok[0].'/ [, resource context] )
    ?>

  8. #8
    Invité
    Invité(e)
    Par défaut
    non ta pas tout compris.
    explication rapide sur la fonction
    bool rmdir ( string dirname [, resource context] )
    bool : signifie que la fonction va te renvoyer un boolee true ou false / true si ça c'est bien passé, fale dans le cas contraire
    string dirname : string cle type que lon attend ici c'est une valeur de type string donc une chaine de caractere; dirname sera le nom du repertoire
    [, resource context] : ce sont les otpions facultatives que tu pourra ajouté, pour avoir la liste je te laisse chercher, regarde ici c'est la bible des fonctions php http://fr.php.net/manual/fr/index.php

    Ensuite comme la fct est décrite le repertoire doit etre vide pour le supprimé or le tien n'est pas vide vu quil contient thumbs et des images.
    ce quil faut faire :
    1. tu supprimes chaque fichiers de ton repertoire regarde du coté de la fonction unlink (regarde sur le lien il y a des exemples d'utilisation)
    2. une fois tt les fichier suppimé tu supprime ton repertoire

    3. lutilisation que tu as faite de la fct nest pas la bonne, par exemple tu peux faire

    $nom_dossier ="photos_galerie/".[FONT=monospace]$login_ok[0];
    [/FONT]if(rmdir($nom_dossier))
    {
    echo "repertoire effacé";
    }
    else
    {
    echo " repertoire non effacé";
    }

    j'ai essayé detre le plus clair possible

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 77
    Points : 37
    Points
    37
    Par défaut
    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.

  10. #10
    Invité
    Invité(e)
    Par défaut
    ben si c'est simple!
    a chaque fois que tu supprimes une photo (unlink), tu verifie le nb e fichiers contenu dans le repertoire :

    - si 1 alors c'est logiquement le fichier thumbs (verifie l'extension ou le nom de fichiers pour plus de sureté)
    --> supprime le fichier thumbs (unlink)
    --> supprime le repertoire (rmdir)

    pour connaitre le nb de fichiers tu peux faire ça
    (src:http://php.developpez.com/faq/?page=...exicographique)

    - si > 1 alors il y a encores des images
    (tu peux verifier qu'il y a bien que des images et si c'est pas le cas tu supprimes pour plus de securité)
    --> on fait rien

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 77
    Points : 37
    Points
    37
    Par défaut
    merci pour ta reponse mais je suis loin de savoir faire ca pour l'instant je sais effacer un fichier du repertoire avec le code ci dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php if ($_GET['action'] == 'suppr') { unlink('photos_galerie/'.$login_ok[0].'/'.$_GET['name']); } ?>
    je peux rajouter ca mais qu'est ce j'en fais apres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php// Création du tableau qui va contenir les fichiers et dossiers$files = array();// Ouverture du répetoire courant// Pour le changer utiliser chdir() avant opendir()$handle = opendir(".");// Parcours des fichiers et dossiers du répertoire courantwhile($file = readdir($handle)) {    if($file != "." && $file != "..") {        $files[] = $file;    }}// Fermeture du répertoire courantclosedir($handle);// Tri du tableaunatsort($files);// Affichage des fichiers et dossiers triésforeach($files as $v) {    echo $v . "<br />";}?>

  12. #12
    Invité
    Invité(e)
    Par défaut
    désolé mais je peux pas t'aider plus car j'ai pas le temps de my pencher plus mais si tu peux patienter on peux voir ça en debut de semaine prochaine(aprés mon retour de weekend)

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 77
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par le69
    merci pour ta reponse mais je suis loin de savoir faire ca pour l'instant je sais effacer un fichier du repertoire avec le code ci dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php if ($_GET['action'] == 'suppr') { unlink('photos_galerie/'.$login_ok[0].'/'.$_GET['name']); } ?>
    je peux rajouter ca mais qu'est ce j'en fais apres

    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
     
    <?php
    // Création du tableau qui va contenir les fichiers et dossiers
    $files = array();
    // Ouverture du répetoire courant
    // Pour le changer utiliser chdir() avant opendir()
    $handle = opendir(".");
    // Parcours des fichiers et dossiers du répertoire courant
    while($file = readdir($handle)) {    if($file != "." && $file != "..") {        $files[] = $file;    }}
    // Fermeture du répertoire courant
    closedir($handle);
    // Tri du tableau
    natsort($files);
    // Affichage des fichiers et dossiers triés
    foreach($files as $v) {    echo $v . "<br />";}
    ?>

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 77
    Points : 37
    Points
    37
    Par défaut
    merci bon week end j'espere que quelqu un pourra m aider
    N'hesitez pas si vous avez une idee....

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 77
    Points : 37
    Points
    37
    Par défaut
    bonjour,

    mon probleme n'est toujours pas resolu alors si quelqu'un à une petite idee...

Discussions similaires

  1. Comment supprimer un répertoire ayant des fichiers
    Par pinson dans le forum Delphi
    Réponses: 2
    Dernier message: 02/11/2006, 09h52
  2. [FTP] Créer et supprimer des répertoires à distance
    Par jc_cornic dans le forum Langage
    Réponses: 7
    Dernier message: 18/10/2006, 21h27
  3. Réponses: 2
    Dernier message: 29/08/2006, 13h59
  4. Réponses: 9
    Dernier message: 24/10/2005, 18h42

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