Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

E/S de archivos y secuencias

La E/S (entrada/salida) de archivos y secuencias hace referencia a la transferencia de datos con destino u origen en un medio de almacenamiento. En .NET Framework, los espacios de nombres System.IO contienen tipos que permiten la lectura y escritura, sincrónica y asincrónica, en archivos y secuencias de datos. Estos espacios de nombres también contienen tipos que realizan la compresión y la descompresión de archivos, así como tipos que permiten la comunicación a través de canalizaciones y puertos de serie.

Un archivo es una colección de bytes ordenada y con nombre que tiene un almacenamiento persistente. Cuando se trabaja con archivos, se opera con las rutas de acceso de directorios, almacenamiento en disco y nombres de archivo y de directorio. En cambio, una secuencia es una sucesión de bytes que se puede utilizar para leer y escribir en una memoria auxiliar, que puede ser uno de los distintos tipos de medios de almacenamiento (por ejemplo, discos o memoria). Al igual que hay varios tipos de memorias auxiliares distintas de los discos, existen varios tipos de secuencias distintas de las secuencias de archivo, como las secuencias de red, de memoria y de canalización.

Se pueden utilizar los tipos del espacio de nombres System.IO para interactuar con archivos y directorios. Por ejemplo, se pueden obtener y establecer las propiedades de los archivos y directorios, y recuperar colecciones de archivos y de directorios basándose en criterios de búsqueda.

Estas son algunas clases de archivo y directorio de uso general:

  • File : proporciona métodos estáticos para crear, copiar, eliminar, mover y abrir archivos, y ayuda a crear un objeto FileStream.

  • FileInfo : proporciona métodos de instancia para crear, copiar, eliminar, mover y abrir archivos, y ayuda a crear un objeto FileStream.

  • Directory : proporciona métodos estáticos para crear, mover y enumerar directorios y subdirectorios.

  • DirectoryInfo : proporciona métodos de instancia para crear, mover y enumerar directorios y subdirectorios.

  • Path : proporciona métodos y propiedades para procesar cadenas de directorio entre plataformas.

Además de usar estas clases, los usuarios de Visual Basic pueden usar los métodos y propiedades proporcionados por la clase Microsoft.VisualBasic.FileIO.FileSystem para la E/S de archivos.

Vea Cómo: Copiar directorios, Cómo: Crear una lista de directorios y Cómo: Enumerar directorios y archivos.

La clase base abstracta Stream es compatible con bytes de lectura y escritura. Todas las clases que representan secuencias heredan de la clase Stream. La clase Stream y sus clases derivadas proporcionan una visión genérica de los repositorios y los orígenes de datos, y evitan que el programador tenga que ocuparse de los detalles específicos del sistema operativo y los dispositivos subyacentes.

Las secuencias comprenden tres operaciones fundamentales:

  • Lectura: transferencia de datos desde una secuencia a una estructura de datos como, por ejemplo, una matriz de bytes.

  • Escritura: transferencia de datos a una secuencia desde un origen de datos.

  • Búsqueda: consulta y modificación de la posición actual en una secuencia.

Dependiendo del repositorio o el origen de datos subyacente, una secuencia puede admitir solo algunas de estas características. Por ejemplo, la clase PipeStream no admite operaciones de búsqueda. Las propiedades CanRead, CanWrite y CanSeek de una secuencia especifican las operaciones que admite.

Estas son algunas de las clases de secuencias de uso general:

  • FileStream : para leer y escribir en un archivo.

  • IsolatedStorageFileStream : para leer y escribir en un archivo en almacenamiento aislado.

  • MemoryStream : para leer y escribir en la memoria como una memoria auxiliar.

  • BufferedStream : para mejorar el rendimiento de las operaciones de lectura y escritura.

  • NetworkStream : para leer y escribir sobre los sockets de red.

  • PipeStream : para leer y escribir sobre canalizaciones anónimas y con nombre.

  • CryptoStream : para vincular secuencias de datos con transformaciones criptográficas.

Para obtener un ejemplo de cómo trabajar con secuencias de forma asincrónica, vea E/S de archivos asincrónica.

El espacio de nombres System.IO también proporciona tipos para leer los caracteres codificados de las secuencias y escribirlos en ellas. Normalmente, las secuencias están diseñadas para la entrada y salida de bytes. Los tipos de lectura y escritura controlan la conversión de caracteres codificados en bytes y a la inversa, para que la secuencia pueda completar la operación. Cada clase de lectura y escritura se asocia a una secuencia, que se puede recuperar mediante la propiedad BaseStream de la clase.

Estas son algunas clases de lectura y escritura de uso general:

  • BinaryReader y BinaryWriter: para leer y escribir tipos de datos primitivos como valores binarios.

  • StreamReader y StreamWriter: para leer y escribir caracteres utilizando un valor de codificación para convertir los caracteres en bytes y a la inversa.

  • StringReader y StringWriter: para leer y escribir caracteres en cadenas.

  • TextReader y TextWriter: sirven como clases base abstractas para otros lectores y escritores que leen y escriben caracteres y cadenas, pero no datos binarios.

Vea Cómo: Leer texto de un archivo, Cómo: Escribir texto en un archivo, Cómo: Leer caracteres de una cadena y Cómo: Escribir caracteres en una cadena.

Leer o escribir una gran cantidad de datos puede requerir muchos recursos. Estas tareas se deben realizar de forma asincrónica si la aplicación necesita seguir respondiendo al usuario. Con las operaciones de E/S sincrónicas, el subproceso de la interfaz de usuario está bloqueado hasta que se completa la operación que usa gran cantidad de recursos. Use operaciones de E/S asincrónicas al desarrollar aplicaciones para la Tienda Windows para evitar crear la impresión de que la aplicación ha dejado de responder.

Los miembros asincrónicos contienen Async en sus nombres, como los métodos CopyToAsync, FlushAsync, ReadAsync y WriteAsync. Estos métodos se usan con las palabras clave async y await.

Para obtener más información, vea E/S asincrónica de archivos.

La compresión se refiere al proceso de reducir el tamaño de un archivo para su almacenamiento. La descompresión es el proceso de extraer el contenido de un archivo comprimido para que esté en un formato utilizable. El espacio de nombres System.IO.Compression contiene tipos para comprimir y descomprimir archivos y secuencias.

Las clases siguientes se utilizan con frecuencia al comprimir y descomprimir archivos y secuencias:

  • ZipArchive : para crear y recuperar entradas en el archivo zip.

  • ZipArchiveEntry : para representar un archivo comprimido.

  • ZipFile : para crear, extraer y abrir un paquete comprimido.

  • ZipFileExtensions : para crear y extraer entradas en un paquete comprimido.

  • DeflateStream : para comprimir y descomprimir secuencias utilizando el algoritmo de deflación (Deflate).

  • GZipStream : para comprimir y descomprimir secuencias con formato de datos gzip.

Vea Cómo: Comprimir y extraer archivos.

El almacenamiento aislado es un mecanismo de almacenamiento de datos que proporciona aislamiento y seguridad mediante la definición de modos estándar de asociar código a los datos guardados. El almacenamiento proporciona un sistema de archivos virtual que está aislado para cada usuario, ensamblado y (opcionalmente) dominio. El almacenamiento aislado es especialmente útil cuando la aplicación no tiene permiso para obtener acceso a los archivos del usuario. Se pueden guardar los valores o los archivos de la aplicación de una forma controlada por la directiva de seguridad del equipo.

El almacenamiento aislado no está disponible para las aplicaciones de la Tienda Windows, sino que deben usarse las clases de datos de la aplicación del espacio de nombres Windows.Storage. Para obtener más información, vea Acceder a datos de aplicaciones con Windows en tiempo de ejecución en el Centro de desarrollo de Windows.

Las clases siguientes se utilizan con frecuencia al implementar el almacenamiento aislado:

Vea Almacenamiento aislado.

.NET para aplicaciones de la Tienda Windows contiene muchos de los tipos necesarios para leer y escribir en secuencias; sin embargo, este conjunto no incluye todos los tipos de E/S de .NET Framework.

Estas son algunas diferencias importantes que se deben tener en cuenta al utilizar operaciones de E/S en las aplicaciones de la Tienda Windows:

Si es necesario, puede convertir entre las secuencias de .NET Framework y las secuencias de Windows en tiempo de ejecución. Para obtener más información, vea Cómo: Convertir flujos de .NET Framework en flujos de Windows en tiempo de ejecución, y viceversa o WindowsRuntimeStreamExtensions.

Para obtener más información sobre las operaciones de E/S en una aplicación de la Tienda Windows, vea Tutorial rápido: Leer y escribir en un archivo en el Centro de desarrollo de Windows.

Cuando se utilizan las clases del espacio de nombres System.IO, se deben seguir los requisitos de seguridad del sistema operativo como las listas de control de acceso (ACL) para controlar el acceso a los archivos y directorios. Este requisito es adicional a cualquier requisito FileIOPermission. Se pueden administrar las listas de control de acceso mediante programación. Para obtener más información, vea Cómo: Agregar o quitar entradas de la lista de control de acceso y Información general sobre la tecnología ACL.

Las políticas de seguridad predeterminadas impiden que las aplicaciones de intranet o Internet obtengan acceso a los archivos del equipo del usuario. Por lo tanto, no use las clases de E/S que requieren una ruta a un archivo físico al escribir el código que se descarga a través de Internet o una intranet. En su lugar, use el almacenamiento aislado para las aplicaciones tradicionales de .NET Framework, o los datos de la aplicación para las aplicaciones de la Tienda Windows.

Solo se realiza una comprobación de seguridad cuando se construye la secuencia. Por consiguiente, no abra una secuencia y se la pase al código o a los dominios de aplicación de menos confianza.

Título

Descripción

Tareas de E/S comunes

Proporciona una lista de tareas de E/S asociadas a los archivos, directorios y secuencias, y vínculos al contenido y los ejemplos pertinentes para cada tarea.

E/S de archivos asincrónica

Describe las ventajas de rendimiento y el funcionamiento básico de la E/S asincrónica.

Almacenamiento aislado

Describe un mecanismo de almacenamiento de datos que proporciona aislamiento y seguridad mediante la definición de las formas estándar de asociar código a los datos guardados.

Operaciones de canalización de .NET Framework

Describe las operaciones anónimas y de canalización con nombre de .NET Framework.

Archivos asignados a memoria

Describe los archivos asignados a memoria, que incluyen el contenido de archivos en disco en memoria virtual. Puede usar archivos asignados a memoria para editar archivos muy grandes y crear memoria compartida para la comunicación entre procesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft