jueves, 26 de enero de 2012

[WinForm] Listar Archivos del Directorio seleccionado


Introducción
En el presente artículo se implementa un ejemplo sencillo de como listar directorios con su contenido, incluyendo además el icono asociado a la extensión del archivo.

Algunas pruebas
Si bien durante las primeras pruebas se hizo uso de la funcionalidad
Icon.ExtractAssociatedIcon
para obtener la imagen relacionada con la extensión del archivo, note que no siempre se recuperaba el icono correcto, es por eso que investigando algo mas en detalle encontré que por medio de las api se puede realizar esto mismo.
La implementación de esta se puede hallar en el archivo ExtractIcon.cs
Si bien en el código solo he dejado una de estas alternativas

01.private void LoadFileList(string path)
02.{
03.string[] files = Directory.GetFiles(path);
04. 
05.lvFiles.Items.Clear();
06. 
07.foreach (var item in files)
08.{
09.string extension = Path.GetExtension(item);
10. 
11.if (!imlSmall.Images.ContainsKey(extension))
12.{
13.Icon iconSmall = FileExplorer.ExtractIconClass.GetIcon(item, true);
14.imlSmall.Images.Add(extension, iconSmall);
15.Icon iconLarge = FileExplorer.ExtractIconClass.GetIcon(item, false);
16.imlLarge.Images.Add(extension, iconLarge);
17.}
18. 
19.ListViewItem listviewItem = new ListViewItem(Path.GetFileName(item), extension);
20.lvFiles.Items.Add(listviewItem);
21. 
22.}
23.}

podrían cambiarse las líneas 13 a 16 para hacer uso del
Icon.ExtractAssociatedIcon()
y comprobar por uno mismo la diferencia en el icono que se obtiene.

Ejemplo de código
Debo remarcar que la implementación que se encuentre en la clase ExtractIcon.cs, no es de mi autoría, sino que use de guía ejemplo como ser
Extracting Icons from Files
ExtractIconClass.cs
Building a Better ExtractAssociatedIcon

[C#]
[VB.NET]

No hay comentarios:

Publicar un comentario