SPLイテレータを使用してPHPで空のディレクトリのツリーを削除する方法に苦労しています。すべてのディレクトリが空である次のディレクトリ構造を検討してください。
/ topdir
level1 level2
私は次のことを試しました:
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(
'/topdir', RecursiveIteratorIterator::CHILD_FIRST
));
foreach ($it as $file) {
if ($file->isDir()) {
rmdir((string)$file);
}
}
ただしRecursiveIteratorIterator::CHILD_FIRST
、最下位レベルのファイルがループの一部になるのを防ぎ、Directory not empty
level1が空ではないため、標準のE_WARNINGを取得します。
SPLイテレータを使用して空のディレクトリのツリーを再帰的に削除するにはどうすればよいですか?glob
注: 、、などを使用してこれを行う方法を知ってscandir
います。これらの/類似の機能をソリューションとして提供しないでください。
私はここで非常に初歩的な何かを見逃しているに違いないように感じます...