Friday, January 19, 2007

Enumerando la Información de las Unidades de Almacenamiento utilizando Visual Studio 2005 y C# 2.0

Materiales: DrivesInfo-Example.cs DrivesInfo-Example.zip Namespaces: System;System.IO; Clases: System.IO.DriveInfo Ensamblados: Mscorlib.dll(Referencia no necesaria) Portabilidad para Mono: Ninguna. Mono 1.2.1 Aun no ha implementado la clase DriveInfo. - Tema para examen oficial Application Development Foundation(70-536). - Certificacion MCTS. Introducción: A menudo uno necesita crear aplicaciones que guarden archivos(XML,TXT,DAT) en el Sistema de Archivos de Windows y por supuesto necesitara saber que unidades y que espacio libre le quedara a cada unidad del usuario. En Microsoft .NET Framework 2.0 se complemento el namespace System.IO con clases y metodos que proporcionan la informacion que necesitamos: Ejemplo: 1) Obtener las instancias de DriveInfo con la informacion de cada Unidad: DriveInfo[] drives = DriveInfo.GetDrives(); 2) Iterar el Array para poder presentar la información de cada Unidad: foreach (DriveInfo info in drives) {...} (Los puntos suspensivos en el codigo dado y en los siguientes indican porciones de codigo no relevante para el paso que se esta explicando) 3) Comprobar el estado de la unidad para solicitar la informacion. Esto se hace mediante la propiedad IsReady, de otra menera si se intenta obtener la información y la unidad no esta lista se levantara una excepción de tipo System.IO.IOException. Un caso tipico de esta situación es la unidad de Diskette(que casi nunca para mi caso tiene un disco): if (info.IsReady) {...} Seguidamente podra mostrar la informacion completa de la unidad. Si se compila y ejecuta la aplicación de ejemplo obtendra un resultado similar: A:\ no tiene disco C:\:Bill gates 39070 MB 39 GB, NTFS D:\ no tiene disco E:\:WD160GB 140665 MB 140 GB, NTFS F:\:SG80GB_EMULE 78140 MB 78 GB, NTFS G:\ no tiene disco H:\:VSSD1 105 MB 0 GB, UDF

No comments: