Maison > développement back-end > tutoriel php > Comment supprimer un répertoire et son contenu en PHP ?

Comment supprimer un répertoire et son contenu en PHP ?

Linda Hamilton
Libérer: 2024-12-25 22:37:16
original
968 Les gens l'ont consulté

How to Delete a Directory and its Contents in PHP?

Suppression d'un répertoire avec des fichiers imbriqués

Q : J'essaie de supprimer un répertoire à l'aide de rmdir() mais cela échoue si le répertoire contient des fichiers. Comment puis-je supprimer un répertoire et tout son contenu ?

R : Voici deux méthodes pour supprimer un répertoire avec tous ses fichiers :

  1. Suppression récursive : Parcourez le répertoire de manière récursive et supprimez chaque fichier et sous-répertoire avant de supprimer le parent. répertoire.
function deleteDir(string $dirPath): void {
    if (! is_dir($dirPath)) {
        throw new InvalidArgumentException("$dirPath must be a directory");
    }
    if (substr($dirPath, strlen($dirPath) - 1, 1) != '/') {
        $dirPath .= '/';
    }
    $files = glob($dirPath . '*', GLOB_MARK);
    foreach ($files as $file) {
        if (is_dir($file)) {
            deleteDir($file);
        } else {
            unlink($file);
        }
    }
    rmdir($dirPath);
}
Copier après la connexion
  1. Itération RecursiveIterator : Pour PHP 5.2 et supérieur, utilisez RecursiveIterator() pour parcourir le répertoire et son contenu.
function removeDir(string $dir): void {
    $it = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS);
    $files = new RecursiveIteratorIterator($it,
                 RecursiveIteratorIterator::CHILD_FIRST);
    foreach($files as $file) {
        if ($file->isDir()){
            rmdir($file->getPathname());
        } else {
            unlink($file->getPathname());
        }
    }
    rmdir($dir);
}
Copier après la connexion

L'une ou l'autre de ces méthodes supprimera efficacement un répertoire comprenant tous ses fichiers et sous-répertoires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal