ファイルが含まれるディレクトリの削除: 総合ガイド
概要:
ディレクトリの削除は次のとおりです。ファイル管理における一般的なタスク。ただし、ファイルが含まれるディレクトリに遭遇すると、削除プロセスが妨げられる可能性があります。この記事では、ファイルの内容に関係なく、ディレクトリを削除するための 2 つの効率的な方法について説明します。
方法 1: 手動再帰
この方法では、ディレクトリ内のすべてのファイルとフォルダーを明示的に削除します。ディレクトリ自体を削除する前に、ターゲット ディレクトリを削除してください。次の関数は、このメソッドを示しています。
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); }
メソッド 2: RecursiveIterator の使用 (PHP 5.2 )
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); }
このメソッドRecursiveIterator がディレクトリ構造の走査とその内容の削除を効果的に処理するため、手動による再帰実装は必要ありません。
以上がPHP でファイルを含むディレクトリを効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。