Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
Bonjour, Le 05/06/2020 17:02, kurtz le pirate a écrit :
J'ai ces quelques lignes de code : <?php try { $start_dir = '.'.DIRECTORY_SEPARATOR ; $dir = new RecursiveDirectoryIterator($start_dir, FilesystemIterator::SKIP_DOTS); $cur_ent = new RecursiveIteratorIterator($dir,RecursiveIteratorIterator::SELF_FIRST,RecursiveIteratorIterator::CATCH_GET_CHILD); foreach( $cur_ent as $file) { echo '<code>' . str_repeat(' ',$cur_ent->getDepth()*6) .'+- ' .($file->isDir()?'<b>['.substr(sprintf("%o", $file->getPerms()), -4).'] '.$file->getFileName().'</b>':'['.substr(sprintf("%o", $file->getPerms()), -4).'] '.$file->getFileName()) . '</code><br>' . PHP_EOL; } } catch (Exception $err) { } Ca marche plutôt bien... sauf quand ça tombe sur un dossier sur lequel je n'ai pas les droits. [l]e script s'arrête alors. Je ne sais pas comment faire pour lui dire de continuer sur le reste de l'arbo.
Tu pourrais commencer par mettre le try ... catch à l'intérieur de la boucle foreach plutôt qu'à l'extérieur. Et si ça ne marche pas, alors peut-être faudra-t-il que tu fasses toi-même une boucle récursive répertoire par répertoire. -- Olivier Miakinen
Bonjour, Le 05/06/2020 17:02, kurtz le pirate a écrit :
J'ai ces quelques lignes de code : <?php try { $start_dir = '.'.DIRECTORY_SEPARATOR ; $dir = new RecursiveDirectoryIterator($start_dir, FilesystemIterator::SKIP_DOTS); $cur_ent = new RecursiveIteratorIterator($dir,RecursiveIteratorIterator::SELF_FIRST,RecursiveIteratorIterator::CATCH_GET_CHILD); foreach( $cur_ent as $file) { echo '<code>' . str_repeat(' ',$cur_ent->getDepth()*6) .'+- ' .($file->isDir()?'<b>['.substr(sprintf("%o", $file->getPerms()), -4).'] '.$file->getFileName().'</b>':'['.substr(sprintf("%o", $file->getPerms()), -4).'] '.$file->getFileName()) . '</code><br>' . PHP_EOL; } } catch (Exception $err) { } Ca marche plutôt bien... sauf quand ça tombe sur un dossier sur lequel je n'ai pas les droits. [l]e script s'arrête alors. Je ne sais pas comment faire pour lui dire de continuer sur le reste de l'arbo.
Tu pourrais commencer par mettre le try ... catch à l'intérieur de la boucle foreach plutôt qu'à l'extérieur. Et si ça ne marche pas, alors peut-être faudra-t-il que tu fasses toi-même une boucle récursive répertoire par répertoire. -- Olivier Miakinen
kurtz le pirate
On 06/06/2020 03:01, Olivier Miakinen wrote:
... Tu pourrais commencer par mettre le try ... catch à l'intérieur de la boucle foreach plutôt qu'à l'extérieur. ...
Merci Olivier, cette solution marche très bien. -- kurtz le pirate compagnie de la banquise
On 06/06/2020 03:01, Olivier Miakinen wrote:
...
Tu pourrais commencer par mettre le try ... catch à l'intérieur de la
boucle foreach plutôt qu'à l'extérieur.
...