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!
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.