Fundamentos del sistema de archivos y la E/S de archivos en .NET Framework (Visual Basic)

Las clases del espacio de nombres System.IO se usan para trabajar con unidades, archivos y directorios.

El espacio de nombres System.IO contiene las clases File y Directory, que proporcionan la funcionalidad de .NET Framework para manipular archivos y directorios. Dado que los métodos de estos objetos son miembros estáticos o compartidos, podrá usarlos directamente sin crear primero una instancia de la clase. A estas clases están asociadas las clases FileInfo y DirectoryInfo, que les resultarán familiares a los usuarios de la característica My. Para usar estas clases, debe usar los nombres completos o importar los espacios de nombres adecuados, incluidas las instrucciones Imports , al principio del código afectado. Para obtener más información, consulte Instrucción Imports (Tipo y espacio de nombres de .NET).

Nota:

Otros temas de esta sección usan el objeto My.Computer.FileSystem en lugar de las clases System.IO para trabajar con unidades, archivos y directorios. El objeto My.Computer.FileSystem está diseñado principalmente para su uso en programas de Visual Basic. Las clases System.IO están diseñadas para su uso en cualquier lenguaje que admita .NET Framework, incluido Visual Basic.

Definición de una secuencia

.NET Framework usa secuencias para permitir la lectura y escritura de archivos. Una secuencia se puede considerar un conjunto unidimensional de datos contiguos con un principio y un fin, en el que el cursor indica la posición actual en la secuencia.

Cursor shows current position in the filestream.

Operaciones con secuencias

Los datos contenidos en la secuencia pueden proceder de la memoria, de un archivo o de un socket TCP/IP. Las secuencias tienen una serie de operaciones fundamentales que se les pueden aplicar:

  • Lectura. Puede leer de una secuencia transfiriendo los datos desde la secuencia a una estructura de datos, como una matriz de bytes.

  • Escritura. Puede escribir en una secuencia transfiriendo datos desde un origen de datos a la secuencia.

  • Búsqueda. Puede consultar y modificar su posición en la secuencia.

Para obtener más información, consulta Redactar flujos.

Tipos de secuencias

En .NET Framework, una secuencia se representa mediante la clase Stream, que constituye la clase abstracta para las demás secuencias. No se puede crear directamente una instancia de la clase Stream, sino que se debe usar una de las clases que implementa.

Hay muchos tipos de secuencias, pero para trabajar con la entrada/salida (E/S) de archivo, los tipos más importantes son la clase FileStream (que proporciona una manera de leer archivos y escribir en ellos) y la clase IsolatedStorageFileStream (que proporciona una manera de crear archivos y directorios en almacenamiento aislado). Existen otras secuencias que se pueden usar al trabajar con E/S de archivo, entre las que se incluyen las siguientes:

En la tabla siguiente se enumeran las tareas que se suelen realizar con una secuencia:

En Vea
Leer y escribir en un archivo de datos Cómo: Leer y escribir en un archivo de datos recién creado
Leer texto desde un archivo Cómo: Leer texto de un archivo
Escribir texto en un archivo Cómo: Escribir texto en un archivo
Leer caracteres de una cadena Procedimiento para leer caracteres de una cadena
Escribir caracteres en una cadena Procedimiento para escribir caracteres en una cadena
Cifrado de datos Cifrar datos
Descifrar datos Descifrar datos

Acceso a archivos y atributos

Puede controlar cómo se crean, se abren y se comparten los archivos con las enumeraciones FileAccess, FileMode y FileShare, que contienen las marcas usadas por los constructores de la clase FileStream. Por ejemplo, cuando se abre o se crea una clase FileStream, la enumeración FileMode permite especificar si el archivo se abre para anexarlo, si se crea un archivo en caso de que no exista el archivo especificado, si el archivo se sobrescribe, etc.

La enumeración FileAttributes permite la recopilación de información específica del archivo. La enumeración FileAttributes devuelve los atributos almacenados del archivo, por ejemplo, si está comprimido, cifrado u oculto, o bien si es de solo lectura, un archivo, un directorio, un archivo de sistema o un archivo temporal.

En la tabla siguiente se enumeran las tareas que implican acceso a archivos y atributos de archivo:

En Vea
Abrir y anexar texto a un archivo de registro Cómo: Abrir y anexar a un archivo de registro
Determinar los atributos de un archivo FileAttributes

Permisos de archivo

Es posible controlar el acceso a archivos y directorios mediante la clase FileIOPermission. Esto puede ser especialmente importante para los desarrolladores que trabajan con formularios Web Forms, que, de forma predeterminada, se ejecutan en el contexto de una cuenta de usuario local especial denominada ASPNET, creada como parte de las instalaciones de ASP.NET y .NET Framework. Cuando este tipo de aplicación solicita acceso a un recurso, la cuenta de usuario ASPNET tiene permisos limitados, que pueden impedir que el usuario realice acciones como escribir en un archivo desde una aplicación web. Para obtener más información, vea FileIOPermission.

Almacenamiento aislado de archivos

El almacenamiento aislado es un intento de resolver los problemas creados al trabajar con archivos en los casos en que el usuario o el código carezcan de los permisos necesarios. El almacenamiento aislado asigna a cada usuario un compartimiento de datos, que puede contener uno o más almacenes. Los almacenes se pueden aislar entre sí por usuario y por ensamblado. Solo el usuario y el ensamblado que crearon un almacén tienen acceso a él. Un almacén actúa como un sistema de archivos virtual completo: dentro de un almacén, puede crear y manipular archivos y directorios.

En la tabla siguiente se enumeran las tareas que suelen estar asociadas con el almacenamiento aislado de archivos.

En Vea
Crear un almacenamiento aislado Cómo: Obtener los almacenes de almacenamiento aislado
Enumerar almacenamientos aislados Cómo: Enumerar los almacenes de almacenamiento aislado
Eliminar un almacenamiento aislado Cómo: Eliminar almacenes de almacenamiento aislado
Crear un archivo o directorio en almacenamiento aislado Cómo: Crear archivos y directorios en almacenamiento aislado
Buscar un archivo en almacenamiento aislado Cómo: Buscar archivos y directorios existentes en almacenamiento aislado
Leer un archivo en almacenamiento aislado o escribir en él Cómo: Leer y escribir en archivos en almacenamiento aislado
Eliminar un archivo o directorio en almacenamiento aislado Cómo: Eliminar archivos y directorios en almacenamiento aislado

Eventos de archivo

El componente FileSystemWatcher permite ver los cambios en los archivos y los directorios del sistema o en cualquier equipo al que tenga acceso de red. Por ejemplo, si se modifica un archivo, puede enviar una alerta a un usuario para indicarle que se ha realizado un cambio. Cuando se producen cambios, se generan uno o varios eventos que se almacenan en un búfer y se entregan al componente FileSystemWatcher para su procesamiento.

Vea también