Introducción a C#
Por Nacho Cabanes, versión 0.93 de 16-abr-2010


(Nota: Estás viendo una versión del curso antigua, creada en 2009. Es recomendable que sigas la versión 2015, mucho más actualizada, con contenidos más detallados, más ejemplos y más ejercicios propuestos)

10.6. Lectura de directorios

Si queremos analizar el contenido de un directorio, podemos emplear las clases Directory y DirectoryInfo.

La clase Directory contiene métodos para crear un directorio (CreateDirectory), borrarlo (Delete), moverlo (Move), comprobar si existe (Exists), etc. Por ejemplo, podríamos hacer cosas como

string miDirectorio = @"c:\ejemplo1\ejemplo2";
if (!Directory.Exists(miDirectorio)) 
    Directory.CreateDirectory(miDirectorio);

También tenemos un método "GetFiles" que nos permite obtener la lista de ficheros que contiene un directorio. Así, podríamos listar todo el contenido de un directorio con:

string miDirectorio = @"c:\";
string[] listaFicheros;
 
listaFicheros = Directory.GetFiles(miDirectorio);
foreach(string fich in listaFicheros)
    Console.WriteLine(fich);

La clase DirectoryInfo permite obtener información sobre fechas de creación, modificación y acceso, y, de forma análoga, FileInfo nos permite conseguir información similar sobre un fichero. Podríamos usar estas dos clases para ampliar el ejemplo anterior, y que no sólo muestre el nombre de cada fichero, sino otros detalles adicionales como el tamaño y la fecha de creación:

DirectoryInfo dir = new DirectoryInfo(miDirectorio);
FileInfo[] infoFicheros = dir.GetFiles();
foreach (FileInfo infoUnFich in infoFicheros) 
{      
    Console.WriteLine("{0}, de tamaño {1}, creado {2}",
      infoUnFich.Name,
      infoUnFich.Length,
      infoUnFich.CreationTime);
}

que escribiría cosas como

hiberfil.sys, de tamaño 1005113344, creado 15/12/2008 12:00:09