Saltar al contenido

Leyendo Directorios con ASP

Practicamente no trabajo con aplicaciones web escritas en ASP.
Eso no quita que a veces algun cliente solicite desarrollo en este lenguaje.

Y cada vez, debo mirar a mi libro con los atajos y apuntes para recordar como se usa. Asi que utilizare este blog para dejar algunos de estos apuntes a mano.

Esto fue «casi» copiado desde aqui : https://sestud.uv.es/manual.esp/asp/asp16.htm

Server.CreateObject Method


Server.CreateObject(“Scripting.FileSystemObject”)

Al usar este objeto, tenemos una forma de mirar (y cambiar) la estructura de archivos y directorios de un sistema. Primero, necesitas crear un objeto FileSystem y despues el objeto File o Folder (Imagino que se entiende cual es para que).

<%
  Set FS = Server.CreateObject("Scripting.FileSystemObject")
  Set File = FS.GetFile("C:\ASP\text.txt")
  Set Folder = FS.GetFolder("C:\ASP")
%>

* FS es un objeto para el sistema de archivos. Nos permite acceder al sistema de archivos en el servidor.
* File es un objeto para archivos, y nos permite acceder a las propiedades de un archivo de texto llamado text.txt (ubicado en c:\ASP\)
* Folder es un objeto para directorios, y nos permite acceso a las propiedades del directorio c:\ASP

Mirando ahora las propiedades, que pueden ser «solo lectura» (R) o «lectura y escritura» (RW). A continuacion usare Object como un ejemplo para ambos tipos, File y Folder.

  • Objeto.Attributes [=new] Despliega (o cambia) los atributos de un objeto. Los valores posibles a continuacion (Se puede usar el nombre, o el valor. R o RW especifica si el atributo es solo de lectura o puede ser cambiado por el desarrollador) :
    • Normal = 0 Archivo normal.
    • ReadOnly = 1 Archivo de solo lectura. RW
    • Hidden = 2 Archivo oculto. RW
    • System = 4 Archivo de sistema. RW
    • Volume = 8 Etiqueta de volumen o disco. R
    • Directory = 16 Directorio. R
    • Archive = 32 Entidad ha sido modificada desde el ultimo respaldo. RW
    • Alias = 64 Enlace a otra entidad. R
    • compressed = 128 Archivo comprimido. R
  • Objeto.DateCreated Entrega la fecha completa de cuando se creo el objeto. R
  • Objeto.DateLastAccessed Entrega la fecha completa de cuando el objeto se accedio por ultima vez. R
  • Objeto.DateLastModified Entrega la fecha completa de cuando el objeto se modifico. R
  • Objeto.Drive Entrega la letra de unidad donde reside el objeto. R
  • Objeto.Name [= newname] Entrega o cambia el nombre del objeto. RW
  • Objeto.ParentFolder Entrega el directorio superior, que contiene a objeto. R
  • Objeto.Path Entrega la ruta completa al objeto. R
  • Objeto.ShortName Regresa el nombre corto, o nombre de DOS (8.3) R
  • Objeto.ShortPath Regresa la ruta con nombres cortos (acceso DOS) R
  • Objeto.Size Con archivos entrega el tamaño del archivo. Con directorios, regresa el tamaño de todo el contenido. R
  • Objeto.Type Entrega un texto descriptivo del tipo de archivo. Por ejemplo, un archivo GIF entregara «GIF Image / Imagen GIF». R
  • Directorio.Files Entrega una coleccion de archivos que contiene todos los archivos contenido en el directorio. Incluyendo archivos ocultos y de sistema. R
  • Directorio.SubFolders Entrega una coleccion de directorios, que contiene todos los subdirectorios incluyendo ocultos y de sistema. R
  • Directorio.IsRootFolder Regresa True si el directorio es el raiz. True si no.

Y los metodos:

  • Objeto.Copy dest[, overwrite] Copia un archivo o directorio a «dest». La opcion «overwrite» (sobreescribir, que puede tomar los valores True o False , especifica si el destino sera sobreescrito en caso de existir. «dest»no puede tener comodines.
  • Objeto.Delete option Elimina un archivo o directorio. Is «option» es True, archivos que sean de solo lectura seran eliminados igualmente. Por defecto (False) no lo hace.
  • Objeto.Move dest Mueve un archivo o directorio a «dest». No puede usar comodines.

En cada caso, cada objeto debe ser cerado en el orden inverso al que fueron creado.

<%
  File.Close
  Set File = Nothing
  Folder.Close
  Set Folder = Nothing
  FS.Close
  Set FS = Nothing
%>

Y para terminar, un ejemplo completo.

<%
  set fs = CreateObject("Scripting.FileSystemObject")
  path = Server.MapPath("/")
  set folder = fs.GetFolder(path)
 
  For each file in folder.Files
    Response.write "Filename : " &amp; File.Name &amp; " <br>"
  Next
%>

Publicado enASPCodigo
Ivn Systems/Software ©2020