J’ai des fichiers que je ne parviens pas à supprimer… Je pense que cela vient du fait qu’ils ont des noms avec des caractères pas bien gérés. Par exemple, l’un d’eux se nomme tenez vous bien : “cadre r?glementaire li? ?l’utilisation d’hpv carburant.pdf”
Y a-t-il une solution pour les renommer ou les supprimer ? Mon client ftp (gFTP) ne veut rien savoir !
As-tu essayé de te connecter avec un client en mode texte (genre le terminal sous Linux) qui gère l’autocomplétion? Peut-être que ça ne changera rien, mais j’irais dans cette voie. Ou éventuellement voir les droits sur ce fichier (un “chmod 777 <le_fichier>” pourrait permettre de l’effacer)?
Je me suis loggé avec un le client en ligne de commande par défaut sous linux (ftp) mais il ne fait pas de complétion… Tout ce que j’ai obtenu est :
ftp> delete plaquette alter’?nergies.pdf
550 Could not delete plaquette: No such file or directory
ftp> delete "plaquette alter’?nergies.pdf"
550 Prohibited file name: plaquette alter’?nergies.pdf
Finalemnet, j’ai aussi essayé avec lftp qui fait la complétion automatique mais il sèche sur mes noms de fichiers… Je copie colle ce la console affiche après un ls pour indiquer le nom du fichier à supprimer et çà me donne :
lftp alterenergies.ouvaton.org@ftp.ocsa-data.net:/html/dev> rm "plaquette alter’nergies.pdf"
rm: L’accès a échoué: 550 Prohibited file name: plaquette alter’nergies.pdf
lftp alterenergies.ouvaton.org@ftp.ocsa-data.net:/html/dev> rm plaquette alter’nergies.pdf
rm: L’accès a échoué: 550 Could not delete plaquette: No such file or directory
rm: L’accès a échoué: 550 Could not delete alter’nergies.pdf: No such file or directory
Une fois executé (avec quelques avertissement sous pretexte qu’on ne peu pas suprimer les fichiers “.” et “…”), le répértoire “docs” a bien été supprimé. Merci
pourrais-tu (ou quelqu’un pourrait-il ?) expliciter un peu plus ta solution de « mettre un fichier php à côté du répertoire à supprimer » ? de manière à la rendre plus facilement généralisable par des newbies ?
par exemple :
à quoi sert $dh ?
je vois opendir(), readdir(), donc je suppose qu’il s’agit d’un code spécifique pour supprimer un dossier, quid si on veut juste supprimer un fichier ?
pourquoi faut-il mettre while (…) avant unlink ?
je débute en création de site web et je me retrouve avec ce même problème de fichiers avec des caractères pas pris en charge et que filezilla ne veut donc pas supprimer.
je précise que je n’y connais rien en php (mon site web c’est que du html, css et un poil de javascript) et que ma motivation pour me plonger dans php en partant de zéro est assez faible alors que je veux juste supprimer des fichiers de mon site…
Dans un éditeur de texte, tu copies-colles le code fourni. Le renomme en : suppression.php.
Tu le transfères (avec Filezilla) à côté du dossier à supprimer. Si ce dossier à supprimer s’appelle docs, tu n’as rien à faire, sinon, tu changes tous les docs du script par le nom de ton dossier à supprimer.
Le script PHP liste les fichiers contenus dans docs/ puis s’il n’arrive pas les lire, il fait un unlink (suppression du fichier en PHP).
Ce script supprime tous les fichiers du répertoire docs (et pas seulement ceux qu’il n’arrive pas à lire), ce n’est pas ce que tu veux.
Pour supprimer des fichiers spécifiques, tu peux créer un fichier appelé par exemple supprime.php dans lequel tu mets :
<?php unlink("fichier1"); unlink("fichier2"); ?>
Tu le mets par FTP dans le répertoire contenant ces fichiers à supprimer, puis avec ton navigateur tu vas sur la page :
http://…tonsite…/…tonrépertoire…/supprime.php
Le simple fait de consulter cette page n’affichera rien mais exécutera le code qui supprime les fichiers.
Non : readdir lit le répertoire, c’est-à-dire la liste des fichiers. À chaque appel il renvoie le nom d’un fichier. Quand il a énuméré tous les fichiers, l’appel suivant renvoie FALSE et la boucle while se termine.