> Manuales > File System Object en ASP

Veamos cómo obtener la lista de archivos que hay dentro de un directorio de nuestro disco duro mediante programación ASP, con el sistema de archivos del sevidor FSO.

En este taller de ASP, que está englobado dentro del manual de File System Object ASP, vamos a mostrar como obtener un listado de los archivos que hay en una carpeta, dentro del sistema de archivos del servidor.

ASP dispone de una serie de objetos para acceder a cualquier recurso dentro de los discos duros del servidor web. Ahora bien, será necesario que en esos discos duros tengamos permisos para poder trabajar. Posiblemente, si probamos los scripts dentro de nuestro ordenador local, no habrá ningún problema para listar los contenidos de cualquier directorio, pero si lo probamos en un servidor de alojamiento compartido, posiblemente tengamos problemas con los permisos, a no ser que estemos intentando acceder a una carpeta que esté dentro de nuestro directorio de publicación.

Ahora veamos un código para mostrar los archivos contenidos en una carpeta. Primero que todo tenemos que decidir el nombre de la carpeta que deseamos explorar, es decir el directorio físico que deseamos listar sus archivos. Algo como C:\inetpub\wwwroot\

Si estamos haciendo pruebas en nuestro ordenador local, podemos conocer perfectamente el nombre de cualquier carpeta, porque sabemos la estructura de discos y directorios de nuestro ordenador. Pero si estamos en un alojamiento compartido, tendremos que hacer una pequeña acción para saber el nombre del directorio físico donde podemos listar sus archivos.

En local, podemos decidir directamente el nombre de la carpeta:

'declaro el nombre de una carpeta
nombre_carpeta = "C:\"

En un alojamiento compartido, podríamos obtener así el nombre de la carpeta física donde está el archivo ASP que estamos ejecutando:

nombre_carpeta = Server.MapPath(".") & "\"

Como se ve, se utiliza el método de Server.mappath() para obtener el nombre de un directorio. A este método se le pasa la ruta relativa del directorio que se desea obtener el nombre físico. En este caso, pasándole ".", nos devolverá el directorio físico donde está el script ASP que estamos ejecutando. Algo como X:\webs\midominio.com\Html\

Una vez tenemos el nombre del directorio que deseamos listar archivos, tenemos que obtener el objeto carpeta de este directorio. Para ello debemos conectar con el sistema de archivos del ordenador:

'Conecto con el sistema de archivos
set FSO = server.createObject("Scripting.FileSystemObject")

Y luego tenemos que extraer el objeto carpeta del directorio deseado:

'creo el objeto carpeta
Set carpeta = FSO.GetFolder(nombre_carpeta)

El siguiente paso es sacar todos los archivos de esa carpeta:

'traigo los archivos de la carpeta
Set archivos = carpeta.Files

Para finalizar, listamos el nombre de cada archivo contenido en la carpeta, mediante un bucle for… each:

'para cada archivo, muestro su nombre.
for each nombre_archivo in archivos
    response.Write "<br>" & nombre_archivo
next

El ejemplo completo sería algo como lo que sigue:

<%
'obtengo el directorio físico de la carpeta donde está este script
nombre_carpeta = Server.MapPath(".") & "\"
response.write "<h1>-" & nombre_carpeta & "</h1>"

'Conecto con el sistema de archivos
set FSO = server.createObject("Scripting.FileSystemObject")

'creo el objeto carpeta
Set carpeta = FSO.GetFolder(nombre_carpeta)

'traigo los archivos de la carpeta
Set archivos = carpeta.Files

'para cada archivo, muestro su nombre.
for each nombre_archivo in archivos
    response.Write "<br>" & nombre_archivo
next
%>

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online Escu...

Manual