Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Navegar por la estructura de directorios en ASP


Práctica sobre el manejo del objeto Folder del File System Object de ASP. Trata de ejemplificar sencillamente como se haría un navegador de directorios de nuestro disco duro.


03/10/03 - Vamos a ver un nuevo ejemplo de trabajo con el sistema de archivos, en concreto con el objeto Folder (carpeta). Se trata de una página que nos muestra todos los directorios de nuestro disco principal (C:) y nos permita seleccionar cualquier carpeta para explorar también todos sus subcarpetas. En cada página que muestra una carpeta se puede volver al directorio padre (excepto en la raíz, que no tiene padre) y entrar en una subcarpeta.

Este script, si no recibe ninguna carpeta por parámetro en el formulario, muestra el contenido de la carpeta padre. Al pulsar sobre una carpeta se envía por formulario la ruta del directorio al que se desea acceder y entonces el script, como sí ha recibido una carpeta por formulario mostrará un botón para volver a la carpeta padre y una serie de botones para meterse en un subdirectorio de la carpeta que se visualiza.

Referencia: Esta práctica se podrá entener mejor leyendo los capítulos precedentes del Manual del FileSystemObject de ASP, donde está englobada. Prestando especial atención a la descripción del objeto Folder.

El código es el siguiente:

<form action=navegardirectorios.asp method=post>
<%
'Conecto con el sistema de archivos
set FSO = server.createObject("Scripting.FileSystemObject")

dim carpeta

'Compruebo si recibo una carpeta desde el formulario
if (request.form="") then
    'si no recibo carpeta, tomo la raiz
    'creo el objeto disco C:
    set discoC = FSO.GetDrive("c")
    'Tomo el directorio raiz
    set carpeta = discoC.rootFolder
    'indico en la carpeta que estoy
    response.write "Accediendo a la Raiz<p>"
else
    'si recibo carpeta, la extraigo
    strCarpeta = request.form("carpeta")
    set carpeta = FSO.getFolder(strCarpeta)
    'indico en la carpeta que estoy
    response.write "Accediendo a la carpeta: " & strCarpeta & "<p>"

    'si no es la carpeta raiz, coloco el enlace para ir al padre
    if (not carpeta.isRootFolder) then
       'coloco un enlace para ir a la carpeta padre
       carpeta_padre = carpeta.parentFolder.path
       response.write "Volver a: <input type=submit name=carpeta value='" & carpeta_padre & "'><p>"
    end if
end if

'extraigo la colección de carpetas
set coleccionCarpetas = carpeta.subFolders

'para cada carpeta coloco un botón para ir a ella.
for each carpeta in coleccionCarpetas
    response.write "<input type=submit name=carpeta value='" & carpeta.path & "'><br>"
next

%>
</form>


El primer enunciado IF comprueba si se está recibiendo datos por formulario o no. Si no se reciben datos se crea un objeto Folder que llamamos carpeta, que corresponde con la el directorio raíz (propiedad rootFolder de la unidad). Si se estaban recibiendo datos del formulario se crea el objeto Folder a partir del valor de la variable carpeta, recibida por formulario, mediante el método GetFolder().

Nota: El método GetFolder(), y otros de los relacionados con el sistema de archivos, tiene un problema con algunos antivirus, pues es considerado como susceptible de pertenecer a un script malicioso. Así pues, si utilizamos un antivirus, se nos puede quedar parada la página que utilice ese método, sin originar respuesta alguna, ni siquiera de error. La solución pasa por detener la función de bloqueo de scripts del antivirus.

En el caso de recibir datos por el formulario se entiende que se está recibiendo un directorio del sistema y para que se pueda volver al directorio padre se pone un botón de formulario. Puede haber un problema si el directorio que se ha recibido es el raíz, pues este no tiene directorio padre y fallaría el script, por eso está el segundo IF, que comprueba que no sea el directorio raíz antes de poner el botón al padre.

Una vez ya se ha creado el objeto carpeta, por cualquier rama de las dos que tiene el primer IF, podemos hacer un recorrido a su colección de subFolders (subdirectorios), colocando un botón para cada uno de los subdirectorios, que al pulsarse se enviará su valor a la página para mostrar dicho subdirectorio.

Fijémonos que todos los botones son de tipo submit. Todos están nombrados como name="carpeta" y eso sirve para que al pulsar cualquier botón de submit se envíe en una variable de formulario (con el nombre "carpeta") el value asociado al botón de submit que se ha pulsado.

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
+ 1 comentario no revisado

 Autoría, licencia y acciones sobre este artículo

Informe de Miguel Angel Alvarez*
Director de DesarrolloWeb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de File System Object en ASP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Scripts en ASP


 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se ha encontrado un comentario sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+File System Object en ASP
Categorías
+Scripts en ASP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia