Maison > développement back-end > tutoriel php > Comment supprimer un répertoire contenant des fichiers en PHP ?

Comment supprimer un répertoire contenant des fichiers en PHP ?

Linda Hamilton
Libérer: 2024-12-05 19:09:12
original
258 Les gens l'ont consulté

How to Delete a Directory Containing Files in PHP?

Supprimer des répertoires contenant des fichiers

Supprimer un répertoire est facile, mais que se passe-t-il lorsque le répertoire contient des fichiers ? La fonction rmdir() échoue s'il y a des fichiers dans le répertoire. Pour supprimer le répertoire, vous devez d'abord supprimer tous les fichiers qu'il contient.

Il existe plusieurs façons de procéder. Une option consiste à utiliser une fonction récursive qui supprime tous les fichiers et dossiers du répertoire, y compris les répertoires imbriqués. Voici un exemple :

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

Alternativement, si vous utilisez PHP 5.2 ou version ultérieure, vous pouvez utiliser un RecursiveIterator pour supprimer le répertoire sans implémenter vous-même la récursion :

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

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