Listar los ficheros de un directorio

Descripción general

Listar los ficheros de un directorio es una tarea trivial y muy común. En este documento se exploran varias maneras de hacerlo

Para listar los ficheos de un directorio temos que usar [GetFiles] por ejemplo

        System.IO.Directory.GetFiles(directorio)

Por ejemplo: Obtener un array de cadenas con la lista de ficheros de un directorio

        Dim auxListaFicheros As String() = System.IO.Directory.GetFiles(directorio)

El problema se complica un poco cuado queremos obtener la lista de ficheros de un directorio en un array de objetos FileInfo. Vale que una vez obtenidos el array de cadenas siempre odemos con un bucle For caargar un array de objetos fileinfo algo ai como esto:

    Public Shared Function GetFicheros(ByVal directorio As String) As System.IO.FileInfo()
        Dim listaFicherosCadenas As String() = System.IO.Directory.GetFiles(directorio)
        Dim listaFicherosFileinfo As IO.FileInfo() = {}
        For Each nombreFichero As String In listaFicherosCadenas
            Dim elementos As Integer = listaFicherosFileinfo.Length
            Array.Resize(listaFicherosFileinfo, elementos + 1)
            listaFicherosFileinfo(listaFicherosFileinfo.Length) = New System.IO.FileInfo(nombreFichero)
        Next
        Return listaFicherosFileinfo
    End Function

Pero hay otras soluciones para obtener el mismo resultado

    Public Shared Function GetFicheros(ByVal directorio As String) As System.IO.FileInfo()
        Dim auxListaFicheros As IEnumerable(Of String) = System.IO.Directory.GetFiles(directorio)
        Dim salida As System.IO.FileInfo()
        salida = auxListaFicheros.[Select](Function(p)
                                               Return New System.IO.FileInfo(p)
                                           End Function).ToArray()
        Return salida
    End Function

O la que mas me gusta

   Public Shared Function GetFicheros(ByVal directorio As String) As System.IO.FileInfo()
        Dim localDirectorio As New System.IO.DirectoryInfo(directorio)
        Return localDirectorio.GetFiles()
    End Function

O esta otra variante

    Public Shared Function GetFicheros(ByVal directorio As System.IO.DirectoryInfo) As System.IO.FileInfo()
        Return directorio.GetFiles()
    End Function

Eso es todo, no queria dejar de escribir esto para que no se me olvide :-)


↑↑↑

A.2.Enlaces

[Para saber mas]
[Grupo de documentos]
[Documento Index]
[Documento Start]
[Imprimir el Documento]
© 1997 - - La Güeb de Joaquín
Joaquín Medina Serrano
Ésta página es española

Codificación
Fecha de creación
Última actualización
[HTML5 Desarrollado usando CSS3]