Lire des répertoires et leur fichier

JCFaitDuPHP Messages postés 7 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 avril 2007 - 10 mai 2006 à 19:15
JCFaitDuPHP Messages postés 7 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 avril 2007 - 12 mai 2006 à 21:15
Salut,

Je tente désespérément de lister dans une page html des répertoires et les fichiers qu'ils contiennent.
Comme ceci :

Dossier 1
Fichier1
Fichier2

Dossier 2

Fichier1

Fichier2

Dossier 3

Fichier1

Fichier2

Le meilleur résultat que j'ai obtenu est d'afficher tous les dossiers et le premier fichier comme ceci :

<cfparam default="#GetDirectoryFromPath(GetTemplatePath())#../showcase" name="repertoire"/> <cfdirectory action="list" directory="#repertoire#" name="allRepertory" sort="name ASC, size DESC"/> <cfoutput query="allRepertory"> #allRepertory.name#
<cfdirectory action="list" directory="#repertoire#/#allRepertory.name#" name="eachRepertory"> #eachRepertory.name# </cfoutput>
Etant donné qu'on ne peut nester des balises output et que cfloop ne comprends pas les objets complexes, comment faire pour boucler à l'intérieur des dossiers ?

arrrgggggg.....

3 réponses

cs_lfontaine Messages postés 203 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 11 mai 2006
11 mai 2006 à 22:53
Salut,

Tu peux nester des cfoutput dans la mesure ou le premier comporte l'attribut group="#alldirectory.name#"
ce qui ne devrait pas poser de probleme puisque tu ne peux pas avoir deux repertoires avec le meme nom.

Laurent
0
JCFaitDuPHP Messages postés 7 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 avril 2007
12 mai 2006 à 11:19
Merci pour ta réponse Laurent.... le problème est que j'ai une nouvelle erreur indiquant <TR><TD id=tableProps2 valign="middle" align="left" width="500">
Invalid column name for Group attribute.

</TD></TR><TR><TD id=tablePropsWidth width="400" colspan="2">The value specified for the group attribute "banners468x60" does not specify a column name of the query

Je n'arrive pas plus à trouve de l'info sur le sujet... mon code est le suivant :

<cfparam default="#GetDirectoryFromPath(GetTemplatePath())#/showcase" name="showcaseRepertory"/>
<cfdirectory action="list" directory="#showcaseRepertory#" name="allRepertory" sort="name ASC, size DESC"/>

<cfoutput query="allRepertory" group="#allRepertory.name#">
#allRepertory.name#

<cfdirectory action="list" directory="#allRepertory.name#" name="eachRepertory" sort="name ASC, size DESC"/>
<cfoutput>
#eachRepertory.name#
</cfoutput>
</cfoutput>

Tu as une idée du problème ? moi je vois pas </TD></TR>
0
JCFaitDuPHP Messages postés 7 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 avril 2007
12 mai 2006 à 21:15
Après trois jours d'angoisse, voici la solution :

Je fais une action "list" sur le répertoire principale, avec l'attribut "recurse" (que j'ai appris aujourd'hui). Après, je teste s'il s'agit d'un dossier ou d'un fichier, puis simplement le mettre en forme suivant la situation.

<cfparam default="#GetDirectoryFromPath(GetTemplatePath())#/showcase" name="repertoire"/>
<cfdirectory action="list" directory="#repertoire#" name="allDirectories" recurse="true"/>
<cfinclude template="includes/declaration.cfm"/>


<cfoutput query="allDirectories" group="name">
<cfif #allDirectories.type# IS "DIR">
#allDirectories.name#

<cfelse>
#allDirectories.name#

</cfif>
</cfoutput>

Ca fait du bien !!!
0
Rejoignez-nous