Problême php fonction unlink

Résolu
Bonjour,

J'ai actuellement un soucis avec la fonction unlink(). J'aimerai supprimer un fichier contenu dans un dossier mais j'obtient à chaque fois un message d'erreur.

Voici mon morceau de code :

$ouverture= opendir('../dossier1/dossier2');
unlink('test.jpg');
closedir($ouverture);

et voilà l'erreur :

Warning: unlink(test.jpg) [function.unlink]: No such file or directory in C:\wamp\www\site\gestion\gestion_photos.php on line 78
(gestion_photos.php étant le fichier où se trouve le code ci-dessus)

Je ne sais plus ou chercher.. Merci d'avance.

4 réponses

  1. Personne n'a d'idée ?

    Merci d'avance.
    1. Au lieu d'attendre bêtement une réponse j'ai continué à chercher (cela paraît évident mais pas pour tout le monde ^^) et après différents essais j'ai enfin trouvé la solution à mon problème. Je la partage donc au cas où quelqu'un rencontrerait le même problème :

      $ouverture= opendir("../dossier2/dossier2");
      unlink("../dossier2/dossier2/test.jpg");
      closedir($ouverture);

      Bonne journée à tous.
    2. pourquoi vous marquez que c'est resolu ???????!!!!!!!!!!!!!!
  2. Bonjour.

    Le problème est relativement simple :
    // 1. On crée un pointeur vers le répertoire '../dossier1/dossier2' MAIS ON NE CHANGE PAS DE REPERTOIRE
    $ouverture= opendir('../dossier1/dossier2');
    // 2. On demande la suppression du fichier test.jpg DANS LE REPERTOIRE COURANT 
    unlink('test.jpg');
    // 3. On supprime le pointeur
    closedir($ouverture);
    1. Merci de ta réponse, mais il me semble que j'ai bien fait ce que tu expliques..

      Pourrais-tu préciser le "MAIS ON NE CHANGE PAS DE REPERTOIRE", et le "DANS LE REPERTOIRE COURANT" ?
      Je crois bien que c'est là la source du problème mais je ne comprend pas pourquoi.
  3. Je n'explique rien, j'ai juste commenté ton code pour te montrer où ça cloche.

    Tu as bien cerné la source du problème :
    Le script est dans C:\wamp\www\site\gestion\ et tu veux supprimer C:\wamp\www\site\dossier1\dossier2\test.jpg.

    Avec ta méthode :
    0. Tu (enfin, plutôt PHP) es dans le répertoire C:\wamp\www\site\gestion\
    1. Tu définis une varaible $ouverture qui pointe vers C:\wamp\www\site\dossier1\dossier2\
    2.Tu demandes la suppression du fichier C:\wamp\www\site\gestion\test.jpg (vu que tu n'as pas bougé !)
    Comme il n'existe pas, PHP te renvoie une erreur.

    Ce que tu peux faire, c'est bêtement unlink ('../dossier1/dossier2/test.jpg'); sans faire de opendir...
    1. ..j'ai essayé, il me sort alors :

      Warning: unlink(../dossier1/dossier2/test.jpg) [function.unlink]: No such file or directory in C:\wamp\www\site\gestion\gestion_photos.php on line 78

      Sais-tu comment je peux "bouger" dans le répertoire où se trouve mon fichier à effacer ?
  4. Warning: unlink(../dossier1/dossier2/test.jpg) [function.unlink]: No such file or directory in C:\wamp\www\site\gestion\gestion_photos.php on line 78

    Ca, ça veut dire qu'il ne trouve pas ton fichier test.jpg

    Il est sensé être dans quel répertoire ?

    Tu peux faire un test avant :
    $fichier = '../dossier1/dossier2/test.jpg';
    if ( is_file ($fichier) ) {
       unlink ( $fichier) ;
    }
    

    ou utiliser $_SERVER["PATH_TRANSLATED"], qui te donne le répertoire courant (faire un echo $_SERVER["PATH_TRANSLATED"] t'aiderait peut-être à deboguer...)
    1. Voici où se trouve le code : C:\wamp\www\site\gestion\gestion_photos.php
      et voilà où se trouve le fichier, il y est c'est sûr : C:\wamp\www\site\gallerie\thermique\test.jpg

      (cette fois j'ai mis les vrais noms ^^)

      Quant au "echo $_SERVER["PATH_TRANSLATED"];" cela ne m'affiche rien..

      (je ne sais plus si je l'ai précisé mais avec le chemin absolu cela ne marche pas non plus..)