ホームページ > バックエンド開発 > PHPチュートリアル > PHP でディレクトリとその内容を削除するには?

PHP でディレクトリとその内容を削除するには?

Linda Hamilton
リリース: 2024-12-25 22:37:16
オリジナル
968 人が閲覧しました

How to Delete a Directory and its Contents in PHP?

ネストされたファイルを含むディレクトリの削除

Q: rmdir() を使用してディレクトリを削除しようとしていますが、ディレクトリが次の場合に失敗します。ファイルが含まれています。ディレクトリとそのすべての内容を削除するにはどうすればよいですか?

A: ディレクトリとそのすべてのファイルを削除するには、次の 2 つの方法があります:

  1. 再帰的削除 : ディレクトリを再帰的に繰り返し、親を削除する前に各ファイルとサブディレクトリを削除します。 directory.
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);
}
ログイン後にコピー
  1. RecursiveIterator Iteration: PHP 5.2 以降の場合、RecursiveIterator() を使用してディレクトリとそのコンテンツを反復処理します。
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);
}
ログイン後にコピー

これらの方法のいずれも、事実上、すべてのファイルとサブディレクトリを含むディレクトリ。

以上がPHP でディレクトリとその内容を削除するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート