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
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
private void LoadFileList(string path) { string[] files = Directory.GetFiles(path); lvFiles.Items.Clear(); foreach (var item in files) { string extension = Path.GetExtension(item); if (!imlSmall.Images.ContainsKey(extension)) { Icon iconSmall = FileExplorer.ExtractIconClass.GetIcon(item, true); imlSmall.Images.Add(extension, iconSmall); Icon iconLarge = FileExplorer.ExtractIconClass.GetIcon(item, false); imlLarge.Images.Add(extension, iconLarge); } ListViewItem listviewItem = new ListViewItem(Path.GetFileName(item), extension); lvFiles.Items.Add(listviewItem); } }
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
Building a Better ExtractAssociatedIcon
[C#]
|
[VB.NET]
|
Hola una pregunta para mostrarlos en un list view ? tendras algun tutorial
ResponderEliminarhola Fernando
ResponderEliminarno entendi la pregunta
para mostrar que cosa en el listview ?
saludos
hola.. disculpe pero porque algunos de los archivos de mi pc no los abre.. se traba y sale esto
ResponderEliminarAcceso denegado a la ruta de acceso 'C:\Archivos de programa'. y que el foreach no tiene suficientes privilejios
y eso___ dirs.GetDirectories subrayado en amarillo
en la linea 73 me marca todo eso?? porfavor y gracias :D
hola Karen
ResponderEliminarla verdad es un error raro
pero que sucede si mueves la solucion a una carpeta mas corta, o sea creas una carpeta de nombre:
c:\desarrollo
y pones alli dentro la solucion (y todos los proyecto)
creo que podria estar fallando porque la ruta queda muy larga
tambien podria ser porque usas Win 7 y este es bastante restrictivo para el acceso a Program Files, deberias cambiar el manifest para ejecutar como administrador
How To Force C# Application To Only Run As Administrator In Windows
saludos
hopla muchas gracias.. disculpe ahora una condicion para que no me abra todo lo de la compu sino solamente una carpeta que yo desida que este en el disco C ?? porfavor y gracias
ResponderEliminarHola, cómo usaría este código en mi proyecto MVC ??
ResponderEliminarGracias!!
hola
EliminarPero este ejemplo no aplica a un proyecto web, no puede seleccionar una carpeta en el servidor desde el browser del cliente
Si podrias obtener los archivos de una carpeta del servidor por emdio del Directory.GetFiles(), pero recuerda usar el Server.MapPath() para obtener la ruta fisica
saludos
Los enlaces no funcionan :(
ResponderEliminar(interesado en el de C#)
Gracias.