Non riesco a eliminare un albero di directory vuote in PHP utilizzando gli iteratori SPL. Si consideri la seguente struttura di directory in cui tutte le directory sono vuote:PHP Elimina in modo ricorsivo le directory vuote con gli iteratori SPL
/TOPDIR
level1 level2
Ho provato la seguente:
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(
'/topdir', RecursiveIteratorIterator::CHILD_FIRST
));
foreach ($it as $file) {
if ($file->isDir()) {
rmdir((string)$file);
}
}
Ma RecursiveIteratorIterator::CHILD_FIRST
impedisce il file di livello più basso da parte del ciclo e ottengo lo standard Directory not empty
E_WARNING perché level1 non è vuoto.
Come si elimina in modo ricorsivo un albero di directory vuote usando Iterator SPL? Nota: so come farlo con glob
, scandir
, ecc. Si prega di non offrire queste/simili funzioni come soluzioni.
Mi sento come se devo essere perso qualcosa molto elementare qui ...
Sei sicuro che tutte queste directory contengono nient'altro che directory? –
OK sì, sono probabili, sono stato in grado di riprodurre questo errore con la directory vuota. :) –
Sì. Ho creato la struttura delle directory come controllo di integrità per questo problema. – rdlowrey