cerhu > comp.lang.* > comp.lang.php

kurtz le pirate (05/06/2020, 17h02)
Bonjour,

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,RecursiveIteratorIt erator::SELF_FIRST,RecursiveIteratorIterator::CATC H_GET_CHILD);
foreach( $cur_ent as $file) {
echo '<code>' . str_repeat('&nbsp;',$cur_ent->getDepth()*6)
..'+-&nbsp;' .($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. je script s'arrête alors.

Je ne sais pas comment faire pour lui dire de continuer sur le reste de
l'arbo. Mettre quoi dans le catch {} ?

Merci de votre aide.
Olivier Miakinen (06/06/2020, 03h01)
Bonjour,

Le 05/06/2020 17:02, kurtz le pirate a écrit :
[..]
> 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.
Discussions similaires
psql et traitement des erreurs

erreurs lors du traitement des tâches...

Erreurs lors du traitement des tâches demandées

[WD75] Traitement des erreurs


Fuseau horaire GMT +2. Il est actuellement 11h56. | Privacy Policy