Recursive tree

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 509 fois - Téléchargée 28 fois

Contenu du snippet

Ce programme permet de retracer toute une arborescence à partir d'un dossier!
Cette arborescence est conservé dans deux fichiers :

text_fichier.txt

text_dossier.txt

Source / Exemple :


<?
//on créé les fichiers text_fichier.txt et text_dossier.txt, si ils sont déjà présent, ils seront vidés
$ecrit = fopen("text_fichier.txt","w");
fclose($ecrit);
$ecrit = fopen("text_dossier.txt","w");
fclose($ecrit);
//je fait fonctionner la fonction avec le dossier test qui se trouve dans le meme
//répertoire que ce fichier code
RecursiveTree("test");
function RecursiveTree($strFileName)
{
        // on ajoute "/" si il n'en posséde pas déjà un
      	if ($strFileName[strlen($strFileName)-1] != "/")
                $strFileName .= "/";

		//si $strFileName est un répertoire
        if (is_dir($strFileName))
		{
                $arborescence = opendir($strFileName);

                while ($File_name = readdir($arborescence)) 
				{
						//on exclus le répertoire en cours et le répertoire parent
                        if ($File_name != "." && $File_name != "..") 
						{
						
								//on récupère le chemin complet du fichier
                                $tree_Name = $strFileName . $File_name; 

								// si c'est un répertoire on appel récursivement la fonction
                                if (is_dir($tree_Name)) 
								{
                                        RecursiveTree($tree_Name);
								}
                                else 
								{
										//on écrit le nom du fichier dans le fichier text_fichier.txt
                                        $ecrit = fopen("text_fichier.txt","a");
					   					fputs($ecrit,"
$tree_Name");
					   					fclose($ecrit);
								}
                        }
                }
                closedir($arborescence);
						//on écrit le nom du répertoire dans le fichier text_dossier.txt
				       $ecrit = fopen("text_dossier.txt","a");
					   fputs($ecrit,"
$strFileName");
					   fclose($ecrit);
        }
}
//on écrit un terme à la fin du fichier pour la futur lecture du fichier
$ecrit = fopen("text_fichier.txt","a");
//le caractère :: ne pouvant pas être contenu dans un répertoire 
//on est sur de ne pas se tromper à la lecture
fputs($ecrit,"
::");
fclose($ecrit);
$ecrit = fopen("text_dossier.txt","a");
fputs($ecrit,"
::");
fclose($ecrit);
?>

Conclusion :


Je compte dans peu de temps déposer la fonction qui permettra de copier toute l'arborescence enregistree dans les deux fichiers à partir d'un répertoire de destination!
Si vous avez d'autres idéés, dites le!

A voir également

Ajouter un commentaire Commentaires
Messages postés
4
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
14 décembre 2004

//je fait fonctionner la fonction avec le dossier test qui se trouve dans le meme
//répertoire que ce fichier code
RecursiveTree("test");

-> On peut appeler une fonction avant de l'avoir crée maintenant? ^^
Sinon le script pourrait etre amélioré grâce notemment à une base de données.
Bonne chance pour la suite !
Messages postés
276
Date d'inscription
dimanche 22 juillet 2001
Statut
Modérateur
Dernière intervention
5 décembre 2013

Oh putain trop bon !
ça déchire , merci , c'est excatement ce que je recherchais ... :)

Bonne prog et à +

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.