Uso del objeto FileSystemObject

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
Código de ejemplo del uso del componente FSO

  <%
  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
%> 
Ejemplo de lectura

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.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO