El componente FileSystemObject, uno de los más utilizados en las páginas ASP, facilita el acceso al sistema de archivos del servidor.
Introducción
Crear y leer archivos y directorios, son algunas de las operaciones más habituales que se realizan con el componente FileSystemObject, también conocido por las siglas FSO.
Es importante tener en cuenta que permite acceder al sistema de archivos del servidor pero no al sistema de archivos del cliente.
El siguiente código muestra el uso del componente FSO, en el que destacan las operaciones:
- Instanciación del objeto de acceso a archivos
- Abrir el archivo deseado en el modo deseado (lectura, escritura)
- Manipular/visualizar el contenido del archivo
- Cerrar los objetos utilizados
<% Const fsoLectura = 1 Dim objFSO 'Instanciación del objeto FSO Set objFSO = Server.CreateObject("Scripting.FileSystemObject") 'Abrir el archivo de texto Dim objTextStream Set objTextStream = objFSO.OpenTextFile("C:ejemplo.txt", fsoLectura) 'Visualiza en el navegador el contendido del archivo de texto Response.Write objTextStream.ReadAll 'Cerrar e inicializar los objetos objTextStream.Close Set objTextStream = Nothing Set objFSO = Nothing %>
Algunos consejos en las operaciones de Lectura y Escritura
Como se vió en el anterior código, en el uso de FSO y en concreto para leer y escribir información en un archivo, se utiliza el objeto TextStream cuyo funcionamiento se profundiza en las siguientes líneas.
Antes de abrir el archivo es conveniente asegurarse de que existe, para ello puede utilizar la función FileExists disponible en el juego de funciones del objeto FSO.
<% If objFSO.FileExists("c:ejemplo.txt") then 'El archivo existe --> instrucciones de lectura else 'El archivo no existe --> Mensaje de error end if %>
En la operación de abrir el archivo pueden especificarse diferentes modos según se desee trabajar en el archivo para leerlo o escribir en él. En este ultimo caso, se puede indicar al objeto que cree el archivo si éste no existe. Es conveniente definir las correspondientes constantes.
- Lectura (1)
- Escritura (2)
- Añadir (8)
<% Const fsoLectura = 1 Const fsoEscritura = 2 Dim objTextStream 'Ejemplo de acceso a un archivo para leer Set objTextStream = objFSO.OpenTextFile("c:ejemplo.txt", fsoLectura) 'Ejemplo de acceso a un archivo para escribir. 'El boleano "True" indica que en caso de no existir será creado Set objTextStream = objFSO.OpenTextFile("C:ejemplo.txt", fsoEscritura, True) %>
Para leer el contenido del archivo de texto deberá utilizar uno de los siguientes métodos del objeto TextStream.
- Read(x): lee el número de caracteres especificado por "x"
- ReadLine: Lee una linea entera
- ReadAll: Lee todo el archivo
Para escribir en un archivo de texto deberá utilizar uno de los siguientes métodos del objeto TextStream.
- Write(cadena): escribe la cadena en el archivo de texto
- WriteLine(cadena): como Write pero añade un retorno o caracter "fin de linea"
- WriteBlankLines(x): escribe x líneas en blanco
<% 'Ejemplo de lectura Response.Write "El contenido del archivo es:" & objTextStream.ReadAll 'Ejemplo de escritura objTextStream.WriteLine "Linea añadida por la ejecución de una página ASP" %>
Una vez finalizadas las operaciones con los objetos del FSO es importante cerrar los objetos utilizados mediante la siguiente instrucción
<% objTextStream.Close Set objTextStream = Nothing Set objFSO = Nothing %>
Dim objFSO Set objFSO = Server.CreateObject("Scripting.FileSystemObject") Dim objTextStream const strNombreArchivo = "C:pruebasdirecciones.txt" const fsoLectura = 1 If objFSO.FileExists(strNombreArchivo) then Set objTextStream = objFSO.OpenTextFile(strFileName, fsoLectura) Response.Write "El contenido del archivo es:<br>" Do while not objTextStream.EOF Response.Write objTextStream.ReadLine loop objTextStream.Close Set objTextStream = Nothing Else Response.Write strFileName & " No se ha encontrado" End If Set objFSO = Nothing
FSO y los permisos
Para poder operar con la manipulación de archivos, es necesario tener en cuenta la cuestión de los permisos ya que se requiere que el usuario IUSER_nombreservidor creado automáticamente por el sistema al instalar IIS, pueda operar sobre el directorio al que se está accediendo.
En el caso de NT, se distinguen permisos de Lectura, Escritura o Acceso total y deberá seleccionarse el correspondiente según el tipo de operación que se desee llevar a cabo desde las páginas ASP ya que en caso contrario se produciría un error. Por ejemplo, IUSR_nombreservidor, debe tener permisos de Control total sobre un directorio en particular para borrar o mover un archivo de ese directorio.