¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. C# 10
  3. El sistema de archivos
Extrait - C# 10 Desarrolle aplicaciones Windows con Visual Studio 2022
Extractos del libro
C# 10 Desarrolle aplicaciones Windows con Visual Studio 2022
4 opiniones
Volver a la página de compra del libro

El sistema de archivos

Las clases de gestión del sistema de archivos

El Framework .NET proporciona una serie de clases en el espacio de nombres System.IO de la librería mscorlib.dll que permiten gestionar el sistema de archivos al completo: las lecturas, los directorios y los archivos.

1. DriveInfo

La clase DriveInfo proporciona los miembros que permiten obtener la información relativa a los lectores de una máquina. Su método estático GetDrives devuelve un array de objetos DriveInfo, correspondiente a los lectores de la máquina sobre la que se ejecuta la instrucción:

DriveInfo[] drives = DriveInfo.GetDrives(); 

La clase DriveInfo se puede instanciar pasando como argumento al constructor la letra del lector:

DriveInfo driveC = new DriveInfo("C"); 

Los miembros de la clase DriveInfo exponen la información relativa a los lectores:

  • AvailableFreeSpace: indica la cantidad de espacio libre en el lector en bytes.

  • DriveFormat: indica el formato del sistema de archivos del lector. Puede ser NTFS, FAT32 o CDFS, según el lector.

  • DriveType: indica el tipo de lector, y devuelve uno de los valores de la lista System.IO.DriveType:

  • CDRom para los lectores ópticos.

  • Fixed para los discos duros.

  • Network para los lectores de red.

  • NoRootDirectory para un lector que no tenga directorio raíz.

  • Ram para un lector RAM.

  • Removable para dispositivos de almacenamiento externo.

  • Unknown cuando el tipo del lector es desconocido.

  • IsReady: esta propiedad booleana indica si el lector está listo para ser utilizado. 

  • Name: indica el nombre del lector, se trata de su letra de acceso.

  • RootDirectory: indica la ruta de acceso de la raíz del lector, devolviendo un objeto DirectoryInfo.

  • TotalFreeSpace: indica la cantidad total de espacio libre en el lector en bytes.

  • TotalSize: indica la cantidad total de espacio del lector.

  • VolumeLabel: devuelve el nombre de la unidad de un lector. Por ejemplo: Disco local.

Excepto la propiedad VolumeLabel, todas son en modo de solo lectura.

2. Directory y DirectoryInfo

La clase Directory es estática. Se usa dando la ruta de acceso del directorio durante la llamada de un método estático. Si desea hacer una única acción en un directorio, use esta clase para ahorrar la instanciación de un objeto. La clase DirectoryInfo implementa prácticamente los mismos métodos que la clase Directory. Si se desea ejecutar varias operaciones sobre...

Trabajar con el sistema de archivos

1. Los objetos Stream

Los objetos Stream se usan para la transferencia de datos, ya sea entre una fuente externa y la aplicación (se trata en este caso de una lectura de datos), o bien entre la aplicación y una fuente externa (se trata entonces de una escritura de datos).

La fuente externa de un flujo puede provenir de un archivo, de una ubicación de memoria e incluso de la red. Dependiendo del origen, se utilizará un objeto u otro. Por ejemplo, para un flujo en memoria, se usará un objeto de tipo System.IO.MemoryStream, mientras que para la transferencia de datos a través de un protocolo de red se usará la clase System.IO.NetworkStream. Cuando trabaje con archivos las clases que usará serán, por un lado, FileStream para escribir y leer datos binarios en particular y para todo tipo de archivo en general. Por otro lado, las clases StreamReader y StreamWriter están diseñadas especialmente para leer y escribir en los archivos de texto.

La ventaja de utilizar un objeto distinto para la transferencia de datos es poder realizar de forma más sencilla el cambio del tipo de la fuente externa. Conservando la separación entre el código de la aplicación y el concepto de fuente de datos particular, el código se puede reutilizar con más facilidad.

2. La clase FileStream

La clase FileStream se utiliza para leer y escribir en archivos binarios. Su constructor y sus sobrecargas pueden tener hasta cuatro argumentos que permiten determinar el archivo, el modo de apertura, el tipo de acceso y el tipo de bloqueo:

FileStream stream = new FileStream(@"C:\archivo.dat",  
                                     FileMode.OpenOrCreate,  
                                     FileAccess.ReadWrite,  
                                     FileShare.None); 

La enumeración FileMode permite especificar la manera en la que se debe abrir el archivo. Los posibles valores se han presentado antes en este capítulo.

La enumeración FileAccess determina los tipos de operación que se podrán realizar...