begin process at 2010 02 10 11:31:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > RECURSIVE TREE

RECURSIVE TREE


 Information sur la source

Note :
6 / 10 - par 3 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier / Disque Niveau :Initié Date de création :05/03/2003 Date de mise à jour :05/03/2003 17:08:56 Vu :4 059

Auteur : TRASH52

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

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

  • <?
  • //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);
  • ?>
<?
//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!  


 Sources du même auteur

Source avec Zip WHOIS RECHERCHE DE NOM DE DOMAINE
Source avec Zip RECURSIVE TREE + COPY TREE V1.0

 Sources de la même categorie

Source avec Zip EFFACER LES FICHIERS IMAGES ( .PNG ), D'UN RÉPERTOIRE TEMPS ... par christophe0511
COURTE ET SIMPLE FONCTION RÉCURSIVE POUR LECTURE DE RÉPERTOI... par mbdx
Source avec Zip Source avec une capture GESTIONNAIRE DE FICHIERS | MYSQL PHP 5.X {NEMENTON PHP MANA... par Nementon
Source avec Zip Source avec une capture LISTE REPERTOIRE (DIR EN PHP) par mephistope
Source avec Zip LIRE UNIQUEMENT LES X DERNIERS OCTETS D'UN FICHIER DISTANT (... par Equilibrius

Commentaires et avis

Commentaire de aKheNathOn le 30/05/2003 16:07:52

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

Bonne prog et à +

Commentaire de Eagle1792 le 09/12/2004 09:23:32

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

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,465 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales