Fundamentos del sistema de archivos y la E/S de archivos en .NET Framework

Actualización: noviembre 2007

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á utilizarlos directamente sin crear primero una instancia de la clase. Asociadas a estas clases están las clases FileInfo y DirectoryInfo, que les resultarán familiares a los usuarios de la característica My. Para utilizar estas clases, debe utilizar sus nombres completos o importar los espacios de nombres adecuados incluyendo las instrucciones Imports al principio del código fuente afectado. Para obtener más información, vea Instrucción Imports (Tipo y espacio de nombres de .NET).

Definición de una secuencia

.NET Framework utiliza secuencias para admitir la lectura de archivos y la escritura en ellos. Puede considerar una secuencia como un conjunto unidimensional de datos contiguos, que tiene un principio y un final, y en el que el cursor indica la posición actual dentro de la secuencia.

Operaciones con secuencias

Los datos contenidos en la secuencia pueden proceder de la memoria, de un archivo o de un socket de TCP/IP. A las secuencias se les pueden aplicar operaciones fundamentales:

  • Lectura. Puede leer de una secuencia, transfiriendo datos desde la secuencia hasta una estructura de datos, como una cadena o una matriz de bytes.

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

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

Para obtener más información, vea Crear secuencias.

Tipos de secuencias

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

Hay muchos tipos de secuencias, pero a efectos de trabajo con la entrada-salida (E/S) de archivos, 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 ofrece una forma de crear archivos y directorios en almacenamiento aislado. Otras secuencias que se pueden utilizar al trabajar con la E/S de archivos son:

La tabla siguiente muestra tareas realizadas normalmente con las secuencias:

Para

Vea

Leer y escribir en un archivo de datos

Cómo: Leer y escribir en un archivo de datos recién creado

Leer de un archivo XML

Tareas comunes de XmlReader

Crear un escritor de secuencias para escribir texto en un archivo

Crear un sistema de escritura

Leer de un archivo de texto

Cómo: Leer texto de un archivo

Escribir texto en un archivo

Cómo: Escribir texto en un archivo

Leer caracteres de una cadena

Cómo: Leer caracteres de una cadena

Escribir caracteres en una cadena

Cómo: Escribir caracteres en una cadena

Cifrar los datos

Cifrar datos

Descifrar los datos

Descifrar datos

Almacenar accesos y atributos

Puede controlar cómo se crean, abren y comparten los archivos con las enumeracionesFileAccess, FileMode y FileShare, que contienen los identificadores usados por los constructores de la clase FileStream. Por ejemplo, al abrir o crear una nueva secuencia FileStream, la enumeración FileMode permite especificar si el archivo está abierto para anexarle datos, si se debe crear un nuevo archivo cuando no existe el archivo especificado, si se debe sobrescribir el archivo, etc.

La enumeración FileAttributes habilita la recopilación de información específica de los archivos. La enumeración FileAttributes devuelve los atributos almacenados del archivo, como por ejemplo si se trata de un archivo de almacenamiento, comprimido, cifrado, oculto, de sólo lectura, de un directorio, de sistema o de un archivo temporal.

La tabla siguiente muestra tareas que implican acceso a archivos y atributos de archivo:

Para

Vea

Abrir un archivo de registro y anexarle texto

Cómo: Abrir y anexar a un archivo de registro

Determinar los atributos de un archivo

FileAttributes

Permisos sobre archivos

El control del acceso a los archivos y directorios se puede llevar a cabo con la clase FileIOPermission. Esto puede ser especialmente importante para los desarrolladores que trabajen con formularios Web Forms, que se ejecutan de forma predeterminada dentro del contexto de un usuario local especial denominado ASPNET, que se crea como parte de las instalaciones de ASP.NET y .NET Framework. Cuando una aplicación de este tipo solicita acceso a un recurso, la cuenta de usuario ASPNET dispone de 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 Permisos de seguridad, Solicitar permisos y la clase FileIOPermission.

La tabla siguiente muestra tareas en las que toman parte los permisos de archivo.

Para

Vea

Solicitar los permisos mínimos

Cómo: Solicitar permiso para obtener acceso a código no administrado

Solicitar los permisos opcionales

Cómo: Solicitar permisos opcionales mediante el marcador RequestOptional

Rechazar permisos

Cómo: Rechazar permisos mediante el marcador RequestRefuse

Solicitar los permisos integrados

Cómo: Solicitar permiso para un conjunto de permisos con nombre

Solicitar permisos codificados en XML

Solicitar permisos codificados en XML

Almacenamiento aislado de archivos

El almacenamiento aislado es un intento de resolver los problemas creados al trabajar con archivos en los que el usuario o el código pueden no tener 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í clasificándolos por usuario y por ensamblado. Sólo el usuario y ensamblado que crearon un almacén tienen el acceso a él. Un almacén actúa como un sistema de archivos virtual completo: dentro de un almacén se pueden crear y manipular directorios y archivos.

La tabla siguiente muestra tareas normalmente asociadas al almacenamiento aislado de archivos.

Para

Vea

Crear un almacén aislado

Cómo: Obtener almacenes para el almacenamiento aislado

Enumerar los almacenes aislados

Cómo: Enumerar almacenes para el almacenamiento aislado

Eliminar un almacén aislado

Cómo: Eliminar almacenes en el almacenamiento aislado

Crear un archivo o directorio en almacenamiento aislado

Cómo: Crear archivos y directorios en almacenamiento aislado

Buscar un archivo en un almacenamiento aislado

Cómo: Buscar archivos y directorios existentes en almacenamiento aislado

Leer o escribir en un archivo de un almacenamiento aislado

Cómo: Leer y escribir en archivos del almacenamiento aislado

Eliminar un archivo o directorio de un almacenamiento aislado

Cómo: Eliminar archivos y directorios en almacenamiento aislado

Eventos de archivos

El componente FileSystemWatcher permite inspeccionar los cambios realizados en los archivos y directorios de su sistema o en cualquier equipo al que tenga acceso a través de la red. Por ejemplo, si se modifica un archivo, puede que desee enviarle una advertencia a un usuario indicándole que se han producido cambios. Cuando se producen cambios, se provocan uno o más eventos, se almacenan en un búfer y se entregan al componente FileSystemWatcher para que los procese. Para obtener más información, vea Reaccionar a eventos del sistema de archivos.

Para

Vea

Crear un controlador para los eventos del sistema de archivos

Cómo: Crear controladores para los eventos del sistema de archivos

Configurar una instancia de componente FileSystemWatcher

Cómo: Configurar instancias de componentes FileSystemWatcher

Vea también

Conceptos

Crear secuencias

E/S de archivos básica

E/S de archivos asincrónica

Clases utilizadas en el sistema de archivos y la E/S de archivos en .NET Framework

Otros recursos

Almacenamiento aislado