Maison  >  Article  >  développement back-end  >  Exemple pour expliquer comment supprimer un dossier avec php

Exemple pour expliquer comment supprimer un dossier avec php

PHPz
PHPzoriginal
2023-04-04 14:29:18589parcourir

Pour supprimer un dossier en PHP, utilisez généralement la suppression récursive, voici les étapes spécifiques :

  1. Ouvrez le dossier et analysez les sous-répertoires  : Utilisez opendir() pour ouvrir le dossier et utilisez readdir() analyse les fichiers/dossiers. Pendant l'analyse, vérifiez si chaque sous-répertoire est un dossier ou un fichier et stockez les chemins d'accès à plusieurs niveaux de sous-répertoires dans un tableau. opendir()打开文件夹并使用readdir()方法扫描文件/文件夹。在扫描的同时检查每个子目录是一个文件夹还是文件,并将多层子目录的路径存储在数组中。

    function deleteFolder($folderPath) {
        if (!is_dir($folderPath)) return false; // 确认路径是一个目录
        $folderIterator = new RecursiveDirectoryIterator($folderPath, RecursiveDirectoryIterator::SKIP_DOTS);
        $iterator = new RecursiveIteratorIterator($folderIterator, RecursiveIteratorIterator::CHILD_FIRST);
        foreach ($iterator as $file) {
            if ($file->isDir()){
                rmdir($file->getRealPath());
            }else{
                unlink($file->getRealPath());
            }
        }
        rmdir($folderPath);
        return true;
    }
  2. 递归删除所有文件和文件夹:在步骤1中,存储了多个层次的子目录路径。现在,对该数组进行逆序迭代,因为删除文件夹的子文件夹必须先执行。
  3. 删除根文件夹:最终,只需使用rmdir()
    function deleteFolder($folderPath) {
        if (!is_dir($folderPath)) return false; // 确认路径是一个目录
        $folderIterator = new RecursiveDirectoryIterator($folderPath, RecursiveDirectoryIterator::SKIP_DOTS);
        $iterator = new RecursiveIteratorIterator($folderIterator, RecursiveIteratorIterator::CHILD_FIRST);
        foreach ($iterator as $file) {
            if ($file->isDir()){
                rmdir($file->getRealPath());
            }else{
                unlink($file->getRealPath());
            }
        }
        rmdir($folderPath);
        return true;
    }

Supprimer de manière récursive tous les fichiers et dossiers

 : à l'étape 1, plusieurs niveaux de chemins de sous-répertoires sont stockés. Maintenant, parcourez le tableau dans l'ordre inverse, car la suppression des sous-dossiers d'un dossier doit être effectuée en premier.

Supprimer le dossier racine

 : Enfin, utilisez simplement la fonction rmdir() pour supprimer le dossier racine. 🎜🎜🎜Code complet : 🎜
$folderPath = "path/to/your/folder/";
deleteFolder($folderPath);
echo "文件夹删除成功!";
🎜Exemple d'utilisation : 🎜rrreee🎜Remarque : ce code supprimera directement le dossier et tout son contenu sans demander de confirmation. Par conséquent, assurez-vous d'avoir sauvegardé tout ce qui se trouve dans ce dossier avant de l'utiliser. 🎜

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!

Déclaration:
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