Recursive tree

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

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.