Grosse prise de tête : en installant Dotclear ce matin, je me rends compte que des dossiers inutiles trainent sur mon ftp. Alors, me voilà parti avec joie et bonheur dans une tentative d'éffacement. Stupeur et sueur froide ! : les dossiers (et leurs contenus) refusent de disparaitres. Après renseignement online, j'apprends que cela peu arriver lorsque les dossiers ou fichiers portent des noms "éxotiques", avec accentuation et co.
Si vous rencontrez ce genre de problème, voici une solution radicale :
- Dans votre éditeur de texte préféré (ou éditeur html genre Dreamweaver) copier/coller le code php suivant :
<?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");
?>
- Remplacez "monFichier" (rm("monFichier");) par le nom du fichier à détruire.
- Enregistrez ce fichier avec le nom que vous souhaitez et avec l'extension .php
- Transférez ce fichier sur votre serveur à la racine du fichier à éffacer.
- Exécutez ce fichier via votre navigateur internet.
Voila ! ça devrais fonctionner.
