<!--
  canonical-url: https://www.avonture.be/fr/blog/ftp-erase-files
  published:     2024-05-25
  This is a static plain-Markdown mirror generated at build time.
  Visit the canonical URL above for the fully rendered page, with images and interactive components.
-->

# FTP - Supprimer fichiers et dossiers à la vitesse de la lumière

> Fini la suppression interminable de fichiers via FTP ! Découvrez comment effacer des sites et des dossiers entiers à la vitesse de l'éclair grâce à un simple script PHP qui s'auto-supprime — même sans accès SSH.

---
![FTP - Supprimer fichiers et dossiers à la vitesse de la lumière](/img/v2/winscp.webp)

**TL;DR**

Cet article partage un petit script `erase.php` que vous pouvez envoyer par FTP et lancer une seule fois depuis le navigateur pour vider instantanément tout un dossier de site côté serveur, et éviter la suppression fichier par fichier, terriblement lente, via un client FTP — avec un avertissement clair : il supprime tout immédiatement, sans confirmation ni sauvegarde.

Avez-vous déjà supprimé un site web depuis votre client FTP ? C'est facile, il suffit de sélectionner le dossier contenant le site et d'appuyer sur la touche `delete`.

Facile, simple et... tellement lent. Supprimer les fichiers et les dossiers prend un temps fou. Plusieurs dizaines de minutes ! Aïe.

Si vous avez [une connexion SSH vers votre serveur web](/blog/connect-using-ssh-to-your-hosting-server) et que vous êtes à l'aise avec elle, vous pouvez faire un `rm -rf` sur le dossier et ce sera terminé en quelques secondes.

Mais si vous n'avez pas SSH ou si vous craignez de faire des erreurs ?

Il existe une alternative, le script `erase.php`.

Ouvrez votre client FTP, ouvrez le dossier de votre site (par exemple `/var/www/html/old_site`), celui que vous voulez supprimer, et créez un nouveau fichier appelé par exemple `erase.php` puis copiez/collez le code ci-dessous dedans.

**erase.php**

```php
<?php

$script_name = basename(__FILE__);
$directory = dirname(__FILE__);

echo '<h1>Deleting all files and subfolders in '.$directory.'</h1>';

$it = new RecursiveDirectoryIterator($directory);

foreach (new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST) as $file) {
  if ( ($file->isDir()) && (!in_array($file->getFilename(), array('.', '..'))) ){
    echo '<h3>Deleting folder '.$file->getPathname().'</h3>';
    rmdir($file->getPathname());
  } else {
    if ( ($file->isFile()) && ($file->getPathname()!=__FILE__) ) {
      echo '<p>Deleting file '.$file->getPathname().'</p>';
      unlink ($file->getPathname());
    }
  }
}

echo '<h4 style="color:green;">Deletion complete.  Only the '.$script_name.' file remains in the folder.</h4>';

unlink(__FILE__);
?>
```

Lancez votre navigateur, allez sur votre site (`http://your_old_site.com`) et ajoutez `/erase.php` à la fin pour exécuter le script.

> **Assurez-vous que c'est bien ce que vous voulez:**
>
> Soyez vraiment sûr que c'est ce que vous voulez

> **Soyez absolument certain que c'est ce que vous voulez:**
>
> Le script démarre immédiatement et supprime tout sans demander de confirmation ni faire de sauvegarde. Il tue simplement fichiers et dossiers.
>
> À la fin du processus (c'est-à-dire en quelques secondes à peine), le dossier sera complètement vide.
>
> *Et, exactement comme pour [le scanner QuickScan](/blog/aesecure-quickscan), pensez à supprimer `erase.php` de votre serveur dès que vous avez terminé : un script capable de vider un dossier n'a rien à faire accessible depuis Internet.*
