Capitulo 2 – Input/output (I/O)–Parte 1

Las bases del sistema I/O incluyen acceder a archivos y carpetas del sistema, trabajar con streams de lectura y escritura, usar streams compresores y el almacenamiento aislado.

Lección 1 – Navegando con los archivos del sistema
Que son las clases del sistema de archivos?
Dentro de System.IO, hay un conjunto de clases que son usadas para navegar y manipular archivos, directorios y drivers.

Aclaración: cada clase y/o enumeración contiene miembros y métodos interesantes, recomiendo que si pueden hagan clic en los links para conocerlos.
 
FileSystemInfo es la clase base de todas las clases informadoras del sistema de archivos.


FileInfo provee la funcionalidad básica para manipular un archivo.
Como obtener información de un archivo?
Para obtener información de un archivo especifico, se puede realizar de esta manera:
clip_image001[6]
 
Como copiar un archivo?
Una vez que tenemos el objeto fileInfo, este permite copiarlo usando CopyTo().
clip_image002[5]
 
DirectoryInfo provee la funcionalidad básica para manipular un directorio.
 
Como enumerar archivos de un directorio?
Crear un objeto de tipo DirectoryInfo y llamar al método GetFiles().
clip_image003[5]
 
DriveInfo provee la funcionalidad básica para obtener información acerca de una unidad.
La enumeración DriveType representa los distintos tipos de unidad que puede ser la clase DriveInfo.
 
Como enumerar drivers?
Crear un objeto DriverInfo e iniciarlo llamando al método estático DriverInfo.GetDrives();

clip_image004[5]
 
Path sirve para manipular paths y debería usarse en lugar de intentar manipular un string manualmente.
Como cambiar la extensión de un archivo?
Usando Path.ChangeExtentension( path, extensión) cambia la forma en que se muestra la extensión de una cadena de ruta de acceso del archivo.
clip_image005[7]
 
FileSystemWatcher puede usarse para monitorizar cambios en un directorio.
Como monitorear cambios en el directorio?
Se crea un objeto de tipo FileSystemWatcher, se registra a los eventos que se desean utilizar ej: created, y se cocola en true la propiedad EnableRaisingEvents (para poder levantar eventos)
clip_image007[6]
 
Lección 2: leyendo y escribiendo archivos
Streams
Provee la funcionalidad básica para manipular flujos de datos de forma sequencial y aleatoria. Es la clase abstracta de todos los flujos de datos (streams). Un stream es una abstracción de una secuencia de bytes, como un archivo, una entrada/salida a un dispositivo o un socket TCP/IP. 
Clases de streams:
FileStream: Provee la funcionalidad básica para abrir archivos tanto en lectura como en escritura. Ejemplo
clip_image009
 
MemoryStream provee la funcionalidad básica para crear flujos en memoria, como podría ser un archivo que aún no hemos guardado a disco.
clip_image010
 
CryptoStream Define una secuencia que vincula los flujos de datos a las transformaciones criptográficas. Es un stream donde se escribe el resultado de la encriptación de otro.
clip_image011
NetworkStream: proporciona métodos para enviar y recibir datos a través de sockets de Stream en modo de bloqueo.

GZipStream Proporciona los métodos y propiedades que permiten comprimir y descomprimir archivos sin perdidas.
Ejemplos:
Como comprimir un archivo?
clip_image001[8]
Como descomprimir un archivo?
clip_image002[7]
Que clases facilitan la lectura y escritura de datos?
Clase File: brinda la funcionalidad básica para abrir archivos streams de lectura y escritura.
Clase Directory: interface para manipular y crear directorios en los archivos del sistema.
Clases StreamReader y StreamWriter: proveen las funcionalidades básicas para leer y escribir información de una clase derivada de un stream. Estas clases se asumen como de un nivel más alto que FileStream.
Ejemplos

clip_image013


.....................................................................................................................................................
2da parte >> 
..................................................................................................................................................... 
 

No hay comentarios:

Publicar un comentario