listar carpetas de un directorio?
hola a todos, me encuentro haciendo un sistema, y quisiera hacer un listado de las carpetas (solo las carpetas, no archivos) que hay en un directorio, por ejemplo quiero listar que carpetas hay en el directorio "/temas" de mi proyecto, por si acaso solo quiero un listado, o mejor aun, quisiera cargar ese listado de nombres de carpetas en un array; no me sugieran la opcion de implementar un
[HTML]<input type="file" name="temas">...[/HTML] por que no es lo que quiero, el asunto no va por ahi, gracias de antemano |
Basándonos en el ejemplo que viene en el manual de PHP:
Código PHP:
|
gracias por sus aportes, en base a ello consegui una solucion probada:
Código PHP:
|
Cita:
Bye |
para keyboy, oye no te molestes, pero sin dudas que probe tu codigo, y de hecho no me lista ni una sola carpeta del directorio en cuestion, y esa es su falencia justamente, pero gracias de todos modos, pues tu ejemplo me sirvio de base para hacer lo que buscaba, pues pude filtrar "." y ".." que se me listaban, gracias...
pdta: segun veo la funcion is_dir($archivo) solo toma en cuenta "." y ".."; asi que decidi usar mejor !is_file($archivo), osea filtrar aquellos que no son archivos en si (que vendrian a ser las carpetas) |
Hola!
El código de keyboy es correctisimo. Si se le califica como erroneo lo educado sería acompañar una explicación. Un saludo! |
oye julian, revisando bien el codigo de keyboy concluyo de que evidentemente si funciona, pero analizandolo mejor, el codigo que puse al final es mas seguro, y mas optimo quizas que el de keyboy, de todos modos, gracias
|
Hola,
Cita:
Código:
/directorio/ Código:
/directorio Código:
/directoriossubdirectorio Código:
/directorios/subdirectorio |
dec, evidemente fue por ahi mi tropiezo que tuve al principio al probar el codigo de keyboy, asi que averigue un poco mas y fue asi como di con la solucion que plantee, que por cierto me parece mejor que la de keyboy, gracias.
|
Hola,
¿Pero por qué te parece mejor tu solución que la de Keyboy? Explícalo. Yo lo único que sé es que Keyboy utiliza la función "is_dir" y tú la función "is_file". Pero, considero la función "is_dir" más apropiada. ¿Por qué? Porque lo que queremos es buscar directorios, no "algo que no sea un archivo". Por ejemplo, no sé si estoy equivocado, pero, podría darse el caso de que tu "script" listara otras cosas que no sean archivos, pero, tampoco directorios, como los "enlaces" de GNU/Linux. Mientras que la función "is_dir" busca directorios, que es lo que necesitas. |
dec, gracias por tu aclaracion, lo tomare en cuenta, de hecho no habia pensado en esa posibilidad que mencionas en linux, de verdad lo tomare muy en cuenta; bueno en realidad creo que mi solucion es mejor por que uso una variable menos ($dir), si revisas ambos codigos te daras cuenta, ademas de que controlo que esa variable evidentemente sea un directorio...
pero de verdad gracias por tu comentario, lo tomare muy en cuenta |
Hola,
Ahora que lo dices, creo que en tu "script", el usar esa variable de menos, en realidad es una desventaja, cuando no un problema. Verás. Keyboy usa la variable "$dir", no sólo para dar más soltura al "script", puesto que puedes especificar la ruta del directorio a listar en dicha variable, y no, directamente, donde se supone que ha de usarse. Pero eso no es todo. Si te fijas, Keyboy usa la variable "$dir" para unirla al subdirectorio que se encuentra en el directorio de marras, de modo que, por decirlo así, usa una ruta absoluta para comprobar la existencia del subdirectorio. Si no me equivoco, tú podrías tener problemas al no hacerlo así, puesto que te basas en el "directorio activo", pero, este podría llegar a cambiar en un momento dado. ;) |
dec, claro que poner el nombre del directorio ($dir) en una variable, podria ser mas util, pero en mi caso mi directorio no es tan "activo" que digamos, es mas bien estatico, por lo que usar una variable mas me resulta una linea (innecesaria) de codigo mas...
bueno, para todos pongo aca el codigo final que me parece es la solucion definitiva a "como listar carpetas de un directorio (temas/)": Código PHP:
|
El código que originalmente puse tenía ciertamente la carencia de concatenar el nombre de directorio. No me había percatado porque lo probé con ".", caso en el que evidentemente no es necesario. Al agregar el nombre de directorio pude ver bien el listado. Como indica dec, y no sólo en linux, si se usa !is_file() en lugar de is_dir() pues se obtiene, por ejemplo, los lnk correspondientes a accesos directos.
Lo que realmente me sorprende es que funcione en "../temas" sin pegar el nombre de directorio. Pero si le funciona, pues qué mejor. Bye |
La franja horaria es GMT +2. Ahora son las 20:37:17. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi