Spanish Listar Carpetas of Archivos

hibrid0

Active Member
Licensed User
Longtime User
Hola aquí les traigo una forma rápida de obtener la lista de Carpetas de un directorio, devuelve una lista con los directorios o con los archivos.

Lista de Carpetas

B4X:
Sub ListFolders(dir As String) as List
Dim list_files As List
Dim lista_folders As List
lista_folders.Initialize
    list_files=File.ListFiles(dir)
    For i= 0 To list_files.Size -1
        If File.IsDirectory(dir, list_files.Get(i))=True Then
            lista_folders.Add(list_files.Get(i))
        End If
    Next
Return lista_folders
End Sub

Lista de Archivos:
B4X:
Sub ListFiles(dir As String) as List
Dim list_files As List
Dim lista_folders As List
lista_folders.Initialize
    list_files=File.ListFiles(dir)
    For i= 0 To list_files.Size -1
        If File.IsDirectory(dir, list_files.Get(i))=false Then
            lista_folders.Add(list_files.Get(i))
        End If
    Next
Return lista_folders
End Sub
 
Last edited:

JordiCP

Expert
Licensed User
Longtime User
Gracias!:)
Al retornar valores, las cabeceras de las funciones deberían ser
B4X:
Sub ListFolders(dir As String) as List
y
B4X:
Sub ListFiles(dir AsString) as List
 

hibrid0

Active Member
Licensed User
Longtime User
Fixed, Gracias. SI habia visto un warning, pero igual me funcionaba.
Hasta ahora estoy aprendiendo esto de B4A :-D
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Seria interesante que añadieras esto:

B4X:
Try
  list_files=File.ListFiles(dir)
Catch
    Log("No se puede acceder a la carpeta")
    Return lista_folders
 End Try

De estas forma si te pasan una carpeta que es root y el dispositivo no lo es no te dará un error, o tambien en el caso que la carpeta no exista.

Buen trabajo

Saludos
 
Top