Impossible de supprimer un fichier sur FTP

Résolu
ordi75 -  
 Rullen -
Bonjour à tous,

Je voulais tester le ftp de free pour monter un ptit site web, état novice j'ai décidé de réaliser des tests.
Pour cela, j'ai eu la mauvaise idée de poser le premier fichier que j'ai trouvé sans réfléchir, suite auxquel un problème est apparu.
Ce fichier possède un nom composer d'espace, caractère spéciaux... après coup, j'ai découvert que ce genre de nom poser des problèmes, en effet, je ne peux plus renommer et impossible de changer les droits.

Lorsque j'essaye de supprimer le répertoire, je reçois ce message :
550 nom du repertoire : Directory not empty

Lorsque j'essaye de supprimer le fichier, je reçoit le message suivant :
550 nom du fichier : No such or file directory

Alors que le fichier est bien présent !!

Maintenant il m'est impossible de supprimer ce fichier, j'ai vraiment tout essayé mais je n'arrive pas à le supprimer.

Si quelqu'un peux m'aider à enfin supprimer ce fichier car moi je commence à désespérer, je ne sais vraiment plus quoi faire.

Je vous en remercie d'avance.
Configuration: Windows XP
Internet Explorer 7.0

32 réponses

  • 1
  • 2
Résumé de la discussion

Une difficulté commune sur FTP est la suppression de fichiers nommés avec des espaces ou des caractères spéciaux, entraînant des erreurs 550 comme Directory not empty ou No such file. Plusieurs répondants proposent des solutions côté serveur ou scripts, notamment l’emploi de la fonction PHP unlink() pour supprimer les fichiers et, si nécessaire, une approche récursive rm() pour effacer répertoires. D’autres suggèrent l’usage d’outils FTP qui effacent en cascade ou de scripts PHP à exécuter sur le serveur, afin de contourner les limitations liées aux noms contenant des caractères spéciaux. En complément, certains recommandent des outils FTP capables d’effacer des dossiers en cascade lorsque les méthodes classiques échouent, et d’autres proposent des scripts pour automatiser la suppression côté serveur.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Pi_Xi Messages postés 2274 Statut Membre 149
     
    Vala, g tout viré!

    A la place de unlink(), g utilisé la fonction (merci Google!):

    <?php
    /**
     * rm() -- Vigorously erase files and directories.
     *
     * @param $fileglob mixed If string, must be a file name (foo.txt), glob pattern (*.txt), or directory name.
     *                        If array, must be an array of file names, glob patterns, or directories.
     */
    function rm($fileglob)
    {
        if (is_string($fileglob)) {
            if (is_file($fileglob)) {
                return unlink($fileglob);
            } else if (is_dir($fileglob)) {
                $ok = rm("$fileglob/*");
                if (! $ok) {
                    return false;
                }
                return rmdir($fileglob);
            } else {
                $matching = glob($fileglob);
                if ($matching === false) {
                    trigger_error(sprintf('No files match supplied glob %s', $fileglob), E_USER_WARNING);
                    return false;
                }      
                $rcs = array_map('rm', $matching);
                if (in_array(false, $rcs)) {
                    return false;
                }
            }      
        } else if (is_array($fileglob)) {
            $rcs = array_map('rm', $fileglob);
            if (in_array(false, $rcs)) {
                return false;
            }
        } else {
            trigger_error('Param #1 must be filename or glob pattern, or array of filenames or glob patterns', E_USER_ERROR);
            return false;
        }
    
        return true;
    }
    
    rm("monFichier");
    
    ?>
    12
    1. Ano
       
      Tout ça pour supprimer un fichier ???!!! C'est beau, l'informatique.... LOL
      0
  2. Pi_Xi Messages postés 2274 Statut Membre 149
     
    Bonjour,

    c'était ptet un pb côté Free, g eu d soucis hier et ce matin pour écraser un fichier, mais ça a fini par fonctionner un peu plus tard.

    Sinon pour effacer ton fichier côté serveur, utilise la fonction unlink() de php:

    1. Ouvrir le bloc notes (ou un autre éditeur texte)
    2. Ajouter ce code PHP :
    <? unlink("monRepertoire/monFichier") ?>
    3. enregistrer le fichier avec l'extension .php (supprimer.php par exemple)
    4. Transférer ce fichier sur le serveur
    5. Exécuter le fichier (en visitant la page dans un navigateur).
    6
  3. Timouss
     
    Bonjour,

    Ayant le même problème que ordi75 j'ai essayé de créer les fichier .php d'abord la fonction unlink puis la fonction rm mais aucune ne marche helas. Je met en lien le code que j'ai inscris ainsi que l'adresse du fichier à supprimer (en plus c'est un pote qui à mis ce mp3 de m...de sur mon ftp !!).

    adresse du fichier : tmouss.free.fr/protected_area/Timouss/arf/- Sniper && Diams - J'aime pas .mp3

    mon fichier rm :

    <?php
    /**
    * rm() -- Vigorously erase files and directories.
    *
    * @param $fileglob mixed If string, must be a file name (foo.txt), glob pattern (*.txt), or directory name.
    * If array, must be an array of file names, glob patterns, or directories.
    */
    function rm($fileglob)
    {
    if (is_string($fileglob)) {
    if (is_file($fileglob)) {
    return unlink($fileglob);
    } else if (is_dir($fileglob)) {
    $ok = rm("$fileglob/*");
    if (! $ok) {
    return false;
    }
    return rmdir($fileglob);
    } else {
    $matching = glob($fileglob);
    if ($matching === false) {
    trigger_error(sprintf('No files match supplied glob %s', $fileglob), E_USER_WARNING);
    return false;
    }
    $rcs = array_map('rm', $matching);
    if (in_array(false, $rcs)) {
    return false;
    }
    }
    } else if (is_array($fileglob)) {
    $rcs = array_map('rm', $fileglob);
    if (in_array(false, $rcs)) {
    return false;
    }
    } else {
    trigger_error('Param #1 must be filename or glob pattern, or array of filenames or glob patterns', E_USER_ERROR);
    return false;
    }

    return true;
    }

    rm("- Sniper && Diams - J'aime pas .mp3");

    ?>

    J'ai essayé aussi de remplacer rm("- Sniper && Diams - J'aime pas .mp3"); par rm("/mnt/167/sdb/b/c/tmouss/protected_area/Timouss/arf/- Sniper && Diams - J'aime pas .mp3"); et aussi en entrant l'adresse complete du fichier tel qu'elle apparait dans l'explorateur. A chaque fois un message d'erreur me signale que le fichier n'a pas été trouvé...

    Est-ce que le fait que le repertoire protected area soit protégé par une fonction htaccess peut poser problème ?

    Merci d'avance pour toute réponse eclairante

    t-mouss
    2
    1. Pi_Xi Messages postés 2274 Statut Membre 149
       
      Bonjour,

      tu dois passer seulement le nom du fichier comme paramètre dans rm() si le fichier .php est au même niveau que ton mp3. Vérifies bien que le mp3 et le fichier .php soient au même niveau ainsi que le nom du fichier problématique.

      As-tu d'autres mp3 sur le server? car tu peux aussi passer *.mp3 qui effacera TOUS tes mp3.
      0
  4. Pi_Xi Messages postés 2274 Statut Membre 149
     
    Re,

    tu aurais pu ouvrir un nouveau post ;o)

    As-tu pris le temps de lire ce sujet et d'essayer d'en faire qqch?

    Je reprends:

    1. Ouvre le bloc notes (ou un autre éditeur texte)
    2. Ajoute ce code PHP :
    <?php
    /**
     * rm() -- Vigorously erase files and directories.
     *
     * @param $fileglob mixed If string, must be a file name (foo.txt), glob pattern (*.txt), or directory name.
     *                        If array, must be an array of file names, glob patterns, or directories.
     */
    function rm($fileglob)
    {
        if (is_string($fileglob)) {
            if (is_file($fileglob)) {
                return unlink($fileglob);
            } else if (is_dir($fileglob)) {
                $ok = rm("$fileglob/*");
                if (! $ok) {
                    return false;
                }
                return rmdir($fileglob);
            } else {
                $matching = glob($fileglob);
                if ($matching === false) {
                    trigger_error(sprintf('No files match supplied glob %s', $fileglob), E_USER_WARNING);
                    return false;
                }      
                $rcs = array_map('rm', $matching);
                if (in_array(false, $rcs)) {
                    return false;
                }
            }      
        } else if (is_array($fileglob)) {
            $rcs = array_map('rm', $fileglob);
            if (in_array(false, $rcs)) {
                return false;
            }
        } else {
            trigger_error('Param #1 must be filename or glob pattern, or array of filenames or glob patterns', E_USER_ERROR);
            return false;
        }
    
        return true;
    }
    
    rm("monFichier");
    
    ?>
    Modifie la dernière ligne en remplaçant "monFichier" par le nom du fichier à effacer

    3. enregistre le fichier avec l'extension .php ("supprimer.php" par exemple)
    4. Transfére ce fichier sur le serveur
    5. Exécute le fichier (en visitant la page dans un navigateur).
    2
    1. PechMayneau Messages postés 12 Statut Membre
       
      moi je l'ai fais et j'ai ça comme message d'erreure /

      Warning: No files match supplied glob Jacques Brel- Amsterdam.mp3 in /mnt/110/sda/b/0/ucim/P/delete.php on line 22


      on dirait que c'est Free qui a bloqué ce fichier
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Pi_Xi Messages postés 2274 Statut Membre 149
     
    Je pense pas que ce soit nécessaire de suprrimer ce compte, c quel fichier qui te pose problème exactement?

    Eventuellement, tu me poste en mp l'accès à ce compte pour voir avant de le supprimer et tu changeras le mdp après que g jeté un coup d'oeil ;o)

    T'as essayé:

    <? unlink("/mnt/125/sda/1/a/monRepertoire/monFichier") ?>

    ?
    1
  7. colorz
     
    Merci, marche nikel
    1
    1. surgat
       
      Yop tous le monde

      Je viens de lire les commentaire du dessus et j'apporte ma contribution ;-)

      Donc pour tous ceux qui n'arrive pas a supprimer un fochier ou dossier sur un ftp

      Le probleme de l'erreur 550 c'est qu'il ne peut pas effacé. Ce problème est du au fait que vous ne voyez pas les fichier caché du genre .htaccess et autre.

      La solution consiste a faire afficher ces fichiers. Ne chercher pas autre chose. Il faut les afficher!

      Avec ftp expert 3, par exemple faite ceci:

      1) - cliquez sur "Fichier" puis "Connecter"
      2) - Clic droit sur "Connexion" puis "Propriétés"
      3) - Dans la boite de dialogue qui vien de s'ouvrir, il 'y a, a gauche une arborescence, clicquez sur "Dossier"
      4) - maintenant a droite de l'arborescence, cliquez sur "Utiliser des valeur personnalisé"
      5) - Déroulez le menu déroulant juste en dessous est choisisez "Afficher les fichier cachée" (on appelle aussi cela "-latr" )
      6) - cliquez sur "Appliquer"
      0
    2. coco
       
      merci surgat marche nikel
      0
  8. eric_b
     
    Bonjour
    j'avait exactement le meme probleme un dossier ne se supprimait pas et j'ai perdu bcp de temps...
    Finalement j'ai trouvé un logiciel FTP qui efface les dossiers en cascade... c'est Kamzy FTP (gratuit)
    donc meme s'il y a plein de fichier ou dossier il les effaces
    http://www.kamzy.com/kamzyftp.html
    1
    1. Fred
       
      Cette pub pour le logiciel me semble mal venu...
      Seule la version pro (payante) permet l'effacement en cascade !
      0
    2. PechMayneau Messages postés 12 Statut Membre
       
      tout a fait j'ai télécharger ce logiciel et il me demande de payer la version Pro, en effet pub mal venu ...
      0
  9. ordi75
     
    En faite, je voulais tester mon ftp, comme je suis novice, je me suis dis de tester FileZila et voir si c'étais facile ou pas de déposer des fichiers dessus.

    J'ai alors pris le premier fichier que j'ai eu sous les yeux (.mp3) en y réfléchissant bien maintenant c'était vraiment pas une bonne idée, le nom du fichier est composée de plusieurs caractéres spéciaux (des espaces, des tirets...) et d'après moi c'est ça qui pose problème.

    merci.
    0
    1. Pi_Xi Messages postés 2274 Statut Membre 149
       
      Mais justement la fct unlink() peut t'être d'une grande utilité dans ce cas...

      T pas le premier qui fait cette erreur, t'inquiète pas, ça se dépanne.

      Et FileZilla est un très bon client ftp :o)
      0
    2. PechMayneau Messages postés 12 Statut Membre
       
      j ai fais la même connerie que toit et je suis dans de beaux draps maintenant
      0
  10. ordi75
     
    Oups, désolé, j'avais lu que ta première phrase dans ton avant dernier message.

    Oui, il n' y a pas de problème, je te poste ou les accès au compte?

    merci encore !!
    0
    1. Pi_Xi Messages postés 2274 Statut Membre 149
       
      tu clic sur mon pseudo :o)
      0
  11. ordi75 Messages postés 1 Statut Membre
     
    Merci Pi_Xi,

    Mon problème est enfin réglée.

    Merci encore !!!
    0
  12. lechat57 Messages postés 1 Statut Membre
     
    Bonjour,

    Je suis un débutant un internet.

    J'aimerai savoir si vous pourriez m'aider pour effacer un fichier sur FTP Expert 3 ou Fizilla.

    Je me bat la dessus depuis un certain temps.

    Je vous remercie d'avance.

    Cordialement
    lechat57
    0
  13. boostren
     
    J'ai eu le même cas... j'ai effacé 95% des fichiers à l'intérieur du repertoire que je voulais effacer et puis pas moyen pour les deux derniers sous repertoires.

    J'ai lancé le petit fichier php ci-dessus et il me dit: "Permission denied in /***/"

    J'ai renommé le repertoire et je vis avec depuis :-)
    0
  14. cheeva Messages postés 3 Statut Membre
     
    j ai le mm pb sauf que je suis pas heberge sous un serveur gratuit et jai ka mm esaye ttes les commandes ci dessus rien je 'narriv tjr pa efacer des fichiers indesirables sur mn serveur ftp
    0
  15. att17 Messages postés 35 Statut Membre 5
     
    Cher internaute
    je pensez que a chaque fois modifier le fichie rpour supprimer un fichier c'etait tros durs
    jai fait une petite modification . comme tout le monde aurait pu le faire

    Jai un peu modifier le code pour qu'il soit plus facile ( surtout pour seut qui on plusieur fichier )
    <?php
    /**
     * rm() -- Vigorously erase files and directories.
     *
     * @param $fileglob mixed If string, must be a file name (foo.txt), glob pattern (*.txt), or directory name.
     *                        If array, must be an array of file names, glob patterns, or directories.
     */
    function rm($fileglob)
    {
        if (is_string($fileglob)) {
            if (is_file($fileglob)) {
                return unlink($fileglob);
            } else if (is_dir($fileglob)) {
                $ok = rm("$fileglob/*");
                if (! $ok) {
                    return false;
                }
                return rmdir($fileglob);
            } else {
                $matching = glob($fileglob);
                if ($matching === false) {
                    trigger_error(sprintf('No files match supplied glob %s', $fileglob), E_USER_WARNING);
                    return false;
                }      
                $rcs = array_map('rm', $matching);
                if (in_array(false, $rcs)) {
                    return false;
                }
            }      
        } else if (is_array($fileglob)) {
            $rcs = array_map('rm', $fileglob);
            if (in_array(false, $rcs)) {
                return false;
            }
        } else {
            trigger_error('Param #1 must be filename or glob pattern, or array of filenames or glob patterns', E_USER_ERROR);
            return false;
        }
    
        return true;
    }
    
    rm($_GET['fichier']);
    
    ?>

    Ouvrez votre bloc note
    enrengistrer avec l'extension .php
    /!\ Ne modifier aucune ligne de ce code /!\ ( sauf si vous en avez vraiment besoins , mais ceci risque d'entrainer des "bug" )
    transférer ce fichier sur votre serveur
    Exécute le fichier (en visitant la page dans un navigateur).
    O.o , ca marche pas . ( Patience on y vien )
    une fois que vous etes rendu sur la page .( imaginon que la page s'apelle supprimer.php )
    vous allez rajouter apres le nom de la page ( supprimer.php) vous aller rajouter un point d'interrogation ( ?)
    puis le mot fichier ensuite rajouter le signe egale ( = ) puis enfin rajouter le nom du fichier que vous souhaitez supprimer .

    Voila maitenant vous n'avez plus besoins de modifier a chaque fois la page ( supprimer.php )
    0
    1. sweetdragon
       
      salut,

      tu as la même avec tout le repertoires et son contenu ou une version pour les repertoires ?

      moi j'ai des repertoires et aussi des fichier en .ulr que j'arrive pas a supprimer.

      merci d'avance
      0
    2. PechMayneau Messages postés 12 Statut Membre
       
      merci mais j'ai ce message d'erreur /

      Warning: No files match supplied glob Jacques Brel- Amsterdam.mp3 in /mnt/110/sda/b/0/ucim/P/delete2.php on line 22
      0
  16. att17 Messages postés 35 Statut Membre 5
     
    Cher internaute .
    Je me suis tromper de sujet et jai poster dans le mien ( o;O )
    donc le lien de plus haut c'etait un exemple pour un autre sujet .
    je voulais aussi vous prevenir quand cherchant un peu jai trouver le solution a mon probleme

    Cordialement
    att17
    0
  17. Lulu
     
    Salut !

    Je cherche également à supprimer des fichiers de mon FTP. J'utilise Filezilla et j'ai ajouté un mp3, pour mon plus grand malheur !
    J'ai bien lu le topic, et j'ai essayé toutes les méthodes proposées : unlink, rm etc ... toutes me donnent le même résultat :
    Warning: No files match supplied glob Mon_Fichier in /mnt/105/free.fr/e/0/Mon_Site/Mon_Répertoire/supprimer.php on line 22

    Donc je ne sais pas. Ai-je mal recopier ? (pourtant, Crtl+C / Crtl V, ca marche bien normalement)

    J'ai le même problème pour un autre fichier dans mon répertoire : un site web entier, qu'il ne veut pas transférer sur mon PC, ou supprimer.

    Merci de votre aide !
    0
    1. PechMayneau Messages postés 12 Statut Membre
       
      Même problème que toi
      0
  18. rogerboby
     
    Merci Ce post m'A beaucoup aidé. Pour supprimer certains fichier j'ai dû ajouter le répertoire/le nom du fichier et tout a fonctionné.
    0
  19. quelqu1
     
    Marc,
    Total Commander se montre une fois de plus vraiment excellent.
    Merci, ça fonctionne !
    0
  • 1
  • 2