PARCOURIR UN RÉPERTOIRE ET SES SOUS SOUS SOUS... RÉPERTOIRE ET RETOURNER LES FIC

Signaler
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015
-
Messages postés
1
Date d'inscription
lundi 15 février 2010
Statut
Membre
Dernière intervention
26 septembre 2010
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41182-parcourir-un-repertoire-et-ses-sous-sous-sous-repertoire-et-retourner-les-fichiers-qui-ont-l-extension-voulue

Messages postés
1
Date d'inscription
lundi 15 février 2010
Statut
Membre
Dernière intervention
26 septembre 2010

Une petite erreur à la ligne 22 :
Il faut mettre $tableauDeFichier= ParcourirDossier($LienRepertoir.$nomFichier."/",$extentionRecherchee,$tableauDeFichier); sinon les sous dossiers manqueront de / dans leur lien.
Messages postés
5
Date d'inscription
mardi 15 septembre 2009
Statut
Membre
Dernière intervention
3 mai 2011

Donc j'ai trouver la solution a mon problème.
Chez moi l'appel récursif ne fonctionnais pas j'ai donc fait une mofification de la fonctione (au niveau du rappel de la fonctio) j'ai aussi bouger l'ordre des conditions.

function ParcourirDossier($LienRepertoir,$extentionRecherchee="",$tableauDeFichier=false)
{
if(!$tableauDeFichier)
{
$tableauDeFichier=array();
}
if(is_dir($LienRepertoir))
{
$ClassDir= dir($LienRepertoir);
while(($nomFichier=$ClassDir->read())!=false)
{
if($nomFichier=='.'||$nomFichier=='..')
{
continue;
}
elseif(strstr($nomFichier,$extentionRecherchee))
{

array_push($tableauDeFichier,$LienRepertoir.$nomFichier);
}
else
{
//si vous enlevez se commentaire vous aurez le nom des dossiers en plus
//array_push($tableauDeFichier,$LienRepertoir."/".$nomFichier);
if(!strstr($LienRepertoir.$nomFichier[0],'.'))/** inclue pas les dossier cacher*/
{$tableauDeFichier= ParcourirDossier($LienRepertoir.$nomFichier.'/',$extentionRecherchee,$tableauDeFichier);}
}

}
return $tableauDeFichier;
}
else
{
return false;
}
}
Messages postés
5
Date d'inscription
mardi 15 septembre 2009
Statut
Membre
Dernière intervention
3 mai 2011

Bonjour,

pour ma part le script scan le répértoire source mais pas ces sous répetoire.
Messages postés
4
Date d'inscription
mercredi 25 mars 2009
Statut
Membre
Dernière intervention
19 septembre 2009

Merci pour ta réponse et désolé de n'avoir pas mis à jour mon commentaire.

J'avais trouvé la solution, en fait ce code marche parfaitement. Le problème venait du fait que sur PC1, je lance xampplite (donc avec mon user) alors que sur PC2, le service Apache était lancé en tant que service Windows et que par défaut, l'utilisateur qui lance ce service est "Système Local".

Il suffisait donc de changer cet utilisateur car "Système Local" n'a pas accès à des ressources réseaux.

Encore merci.
Afficher les 10 commentaires