Mostrar carpetas en un listview.
En la página de El Guille, he descargado un ejemplo de código para mostrar archivos en un listview, el código funciona perfectamente, y me muestra todos los archivos que se encuentran en un directorio que yo le especifico en el campo txtDir aplicando los criterios de búsqueda que escribo en txtFiltro.
El problema es que necesito que además que me muestre todos los archivos o documentos que encuentre, necesito que me liste también los subdirectorios (carpetas) que encuentre con esos mismos criterior de búsqueda que aplico en txtFiltro.
En resumen, con el siguiente código me muestra los archivos encontrados, pero también necesito que me muestre las carpetas encontradas con los mismos criterios de búsqueda.
Te pongo el código que utilizo.
'--------------------------
Private Sub recorrerDir(ByVal di As DirectoryInfo)
' Recorrer los ficheros de este directorio
' añadir al listview si se encuentra alguno
Dim fics() As FileInfo
Dim dirs() As DirectoryInfo
Application.DoEvents()
If cancelar Then Exit Sub
Me.LabelInfo.Text = di.FullName & "..."
Me.LabelInfo.Refresh()
With My.Settings
Try
fics = di.GetFiles(.Filtro, SearchOption.TopDirectoryOnly)
With Me.lvFics
For Each fi As FileInfo In fics
Dim lvi As ListViewItem = .Items.Add(fi.Name)
lvi.SubItems.Add(fi.DirectoryName)
Next
'.Refresh()
End With
If .conSubDir Then
dirs = di.GetDirectories()
For Each dir As DirectoryInfo In dirs
recorrerDir(dir)
Next
End If
'-----------------------------
Creo que el problema es que no se manejar bien los objetos directorio, tras realizar mil pruebas, siempre me da un error.
Ante todo, muchas gracias de antemano por tu paciencia y ayuda que me pudieras ofrecer.
El problema es que necesito que además que me muestre todos los archivos o documentos que encuentre, necesito que me liste también los subdirectorios (carpetas) que encuentre con esos mismos criterior de búsqueda que aplico en txtFiltro.
En resumen, con el siguiente código me muestra los archivos encontrados, pero también necesito que me muestre las carpetas encontradas con los mismos criterios de búsqueda.
Te pongo el código que utilizo.
'--------------------------
Private Sub recorrerDir(ByVal di As DirectoryInfo)
' Recorrer los ficheros de este directorio
' añadir al listview si se encuentra alguno
Dim fics() As FileInfo
Dim dirs() As DirectoryInfo
Application.DoEvents()
If cancelar Then Exit Sub
Me.LabelInfo.Text = di.FullName & "..."
Me.LabelInfo.Refresh()
With My.Settings
Try
fics = di.GetFiles(.Filtro, SearchOption.TopDirectoryOnly)
With Me.lvFics
For Each fi As FileInfo In fics
Dim lvi As ListViewItem = .Items.Add(fi.Name)
lvi.SubItems.Add(fi.DirectoryName)
Next
'.Refresh()
End With
If .conSubDir Then
dirs = di.GetDirectories()
For Each dir As DirectoryInfo In dirs
recorrerDir(dir)
Next
End If
'-----------------------------
Creo que el problema es que no se manejar bien los objetos directorio, tras realizar mil pruebas, siempre me da un error.
Ante todo, muchas gracias de antemano por tu paciencia y ayuda que me pudieras ofrecer.
1 respuesta
Respuesta de Roberto Alvarado
1