Llenar un ListView con un listado de directorio

Vamos a crear en visual basic .net una vista de un directorio en un ListView, muy similar a como lo vemos en el explorador de windows.

Para ello solo necesitamos un formulario y un listview.

Como se muestra en la siguiente imagen, debemos agregar las columnas al listview. Ellas son: Nombre, Tamaño, Fecha creación, Fecha modificación y Ultimo acceso.

Para leer la información del directorio usaremos la instrucción DirectoryInfo contenida en el espacio de nombre System.IO por lo que tenemos que hacer un import como se muestrá abajo.

imports System.IO

Luego en el evento Load del formulario copiamos el siguiente código:

Dim d As New DirectoryInfo("C:\Windows")
ListView1.View = View.Details
ListView1.FullRowSelect = True

ListView1.BeginUpdate()
ListView1.Items.Clear()

For Each f As FileInfo In d.GetFiles
    Dim item As New ListViewItem(f.Name)

    item.SubItems.Add(f.Length)
    item.SubItems.Add(f.CreationTime)
    item.SubItems.Add(f.LastWriteTime)
    item.SubItems.Add(f.LastAccessTime)

    ListView1.Items.Add(item)
Next
ListView1.EndUpdate()

El código es muy sencillo, por lo que no haré demasiadas aclaraciones… pero si tienes alguna duda solo debes comentar y dentro de mis posibilidades te estaré contestando.



17 Responses to “Llenar un ListView con un listado de directorio”

  1. Información Bitacoras.com…

    Valora en Bitacoras.com: Vamos a crear en visual basic .net una vista de un directorio en un ListView, muy similar a como lo vemos en el explorador de windows. Para ello solo necesitamos un formulario y un listview. Como se muestra en la siguiente im…..

  2. [...] como base el ejemplo anterior, veremos como podemos en, visual basic .net, ordenar los datos del listview por alguna de sus [...]

  3. Oscar dice:

    Y como lo ordenas por alguno de los campos fecha en forma descendente por ejemplo Fecha Creación.

    Gracias y saludos.

  4. julian mejia dice:

    hola
    tengo unas dudas
    - que archivos abrió de la carpeta de windows
    - y si podrías subir el código de llenar un listview con información de una base de datos

    muchas gracias por la atención prestada y si puedes colaborar me

  5. Erik dice:

    Me fue de mucha ayuda, Gracias

  6. Van Gerson Cloud dice:

    Muchas gracias me sirvio de mucho

  7. Christia dice:

    Y para los Subdirectorios como seria ?

  8. omar dice:

    disculpa ami me sale el sgt error

    Error 1 Error de resolución de sobrecarga porque ninguna de las funciones ‘Add’ a las que se tiene acceso se puede llamar con estos argumentos:
    ‘Public Function Add(text As String) As System.Windows.Forms.ListViewItem.ListViewSubItem’: Option Strict On no permite la conversión implícita de ‘Long’ en ‘String’.
    ‘Public Function Add(item As System.Windows.Forms.ListViewItem.ListViewSubItem) As System.Windows.Forms.ListViewItem.ListViewSubItem’: Un valor de tipo ‘Long’ no se puede convertir en ‘System.Windows.Forms.ListViewItem.ListViewSubItem’.

    • Eliseo dice:

      que versión del framework estas usando?
      puede que con alguna versión anterior no lo puedas hacer en una sola linea.
      Programando para Compact Framework me pasaba algo parecido y tenía que descomponer este tipo de ordenes en varias lineas.

      Prueba hacer eso y estoy seguro que lo resolverás.

      Suerte

  9. Eriskon dice:

    Me gustaria saber como adicionar los elementos con los iconos.

  10. omar dice:

    hola
    he utilizado el codigo pero tengo un problema de ordenamiento
    necesito ordenar por fecha de creacion
    (CreationTime) he probado con tu codigo y he creado el modulo para ordenar pero no me funciona. ejem
    si tengo datos del 01/03/2011 al 03/05/2011 de fecha de creacion el ordenamiento se mescla
    lo que se requiere es que ordene por fecha y el tiempo de creacion que aparece
    ejemplo

    repor01 01/03/2011 16:50:21
    repor02 01/03/2011 16:52:11
    repor03 01/04/2011 15:01:16
    repor04 02/03/2011 20:02:20

    de forma ascendente

    ojala me puedas responder gracias

  11. Martin dice:

    Hola,

    Estoy intentando incorporar a mi proyecto, el ejemplo que citas en el post.

    El tema es que me da errores de todo tipo.

    Podras enviarme el proyecto en VB para ver el codigo?

    Aguardo tu respuesta.

    • Eliseo dice:

      este codigo es para utilizar en visual basic .net, preferentemente de la versión del microsoft framework 2.0 en adelante.

  12. Jordan dice:

    Hola sabes q estuve viendo tu codigo y no puedo hacerlo funcionar hice los pasos q salen hay y no me resulta solo q yo quiero mostrar solo archivos txt desde ya muchas gracias

Comentar