Spanish (SOLUCIONADO) Listar archivos de "documents"

J M Movilla Cuadrado

Member
Licensed User
Al no encontrar respuestas a mi pregunta sobre FileDialog, ¿podríais indicarme otro método efectivo para conseguir la LISTA DE ARCHIVOS existentes en la ruta File.Combine(File.DirRootExternal, "download") que tengan una determinada extensión? ¿Alguien puede aportarme un ejemplo, por favor? Agradezco vuestro interés y ayuda.

Los ejemplos que encuentro en el foro me dan todos error, y no consigo saber en qué fallo...
 
Last edited:

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Una forma seria así:

B4X:
  dim Files, FileOK as List
  Dim NombreFile, extension As String

   Files.Initialize
   Try
       ' poner todos los ficheros  en la lista
       Files = File.ListFiles(Directorio)
   Catch
   End Try
   If Files.Size = 0 Then Return
   
   FileOK.Initialize
   
   extension = ".txt" ' pon la extensión que quieras 
   For n = 0 To Files.Size-1
       NombreFile = Files.Get(n)
       ' puedes repetir esta linea para mas de una extensión o hacer un OR
       If NombreFile.EndsWith(extension) Then  FileOK.Add(Files.Get(n))   

   Next

Saludos
 

josejad

Expert
Licensed User
Longtime User
Recuerda tener permisos sobre la carpeta que vas a leer...

saludos,
 

J M Movilla Cuadrado

Member
Licensed User
Hola, bgsoft: Muchas gracias por tu aportación. Como me sigue dando error por no tener permisos para leer la carpeta [File.DirRootExternal,"download"] he tenido que cambiar la ruta a [File.DirDefaultExternal], con lo que ya me funciona bien tu código, pero después de haber creado manualmente la carpeta [/storage/emulated/0/Android/data/b4a.ed] y dentro de ésta, la carpeta [files] para copiar ahí mis ficheros...

Como esa carpeta [/storage/emulated/0/Android/data/b4a.ed/files] es precisamente la ruta [File.DirDefaultExternal], por lógica debiera generarse automáticamente al instalar la apk. Así que si no lo hace así, seguro que es porque yo hago algo mal...

Alguna vez pienso "es que no se puede llegar a viejo..." Pero en realidad bien demostrado queda que eso no es cierto, porque a viejo ya he llegado; lo que no se puede es pretender hacer cosas para las que un viejo ya no está capacitado... Ya me perdonaréis por pretenderlo, abusando de vuestra comprensión y de vuestra paciencia...
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Recuerda tener permisos sobre la carpeta que vas a leer...

saludos,

Hola José, los permisos deberá tenerlos si la versión de la API es 23 o superior (Android 6 o superior), si no, no hace falta.
Para alguien nuevo en B4A mejor si hace pruebas con una versión por debajo de 23 para no tener que montar todo el código de los permisos, que este caso seria PERMISSION_READ_EXTERNAL_STORAGE, y en el Manifest android.permission.WRITE_EXTERNAL_STORAGE

Yo habitualmente para pruebas pongo android:targetSdkVersion="19" , otra cosa es que quiera subir la aplicación al Play Store

Saludos
 

josejad

Expert
Licensed User
Longtime User
Tienes razón Jesús, de todas formas se lo he comentado porque está teniendo ese problema en otro hilo.
Pero si haces las pruebas en tu teléfono y no en un emulador y tu teléfono tiene Android 7 por ejemplo, ya hay que implementarlo o no te funcionará en las pruebas aunque le pongas android:targetSdkVersion="19", no?

gracias
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola JM:

Como decia Jack el destripador: vayamos por partes :D

Como me sigue dando error por no tener permisos para leer la carpeta [File.DirRootExternal,"download"] he tenido que cambiar la ruta a [File.DirDefaultExternal], con lo que ya me funciona bien tu código
Si no tienes permisos por que trabajas con una api 23 o superior, tendras que darlos tanto para el File.DirRootExternal como para el File.DirDefaultExternal , por lo tanto me parece que es un problema de código, prueba añadir "/" , algo asi: File.DirRootExternal & "/download"

Como esa carpeta [/storage/emulated/0/Android/data/b4a.ed/files] es precisamente la ruta [File.DirDefaultExternal], por lógica debiera generarse automáticamente al instalar la apk. Así que si no lo hace así, seguro que es porque yo hago algo mal...
No te creará esa ruta hasta que no abras la aplicación

Alguna vez pienso "es que no se puede llegar a viejo..." Pero en realidad bien demostrado queda que eso no es cierto, porque a viejo ya he llegado; lo que no se puede es pretender hacer cosas para las que un viejo ya no está capacitado... Ya me perdonaréis por pretenderlo, abusando de vuestra comprensión y de vuestra paciencia...
Posiblemente yo sea mas... mayor que no viejo :D que tu, y nunca es tarde para aprender. Por otro lado, este foro está para ayudarnos seamos jóvenes, viejos o lo que sea, asi que no tienes que pedir perdón puesto que simplemente preguntas lo que no sabes, como hacemos todos. Y si a alguien le molesta que preguntes mucho, pues simplemente no te responderá, pero seguro que alguno habrá. Y en este foro ultimamente ha entrado gente con ganas de ayudar como es nuestro amigo sevillano José J Aguilar (entre muchos otros) que es lo que hace que este foro sea de los mas activos quitando el general.

Saludos
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Tienes razón Jesús, de todas formas se lo he comentado porque está teniendo ese problema en otro hilo.
Pero si haces las pruebas en tu teléfono y no en un emulador y tu teléfono tiene Android 7 por ejemplo, ya hay que implementarlo o no te funcionará en las pruebas aunque le pongas android:targetSdkVersion="19", no?

gracias

No, yo hago pruebas con un sdk 19 y el dispositivo con Android 8 y no hace falta montar toda la parafernalia de los permisos, de ahi mi comentario para alguien que empieza en B4A, menos complejidad.
Como le he respondido, creo que el problema de error no es de permisos si no de como pone el directorio, si te pide permisos para el Raiz, te lo pide para cualquier otro, por que es un permiso de acceso a leer o escribir, no a una carpeta concreta.

Saludos
 

josejad

Expert
Licensed User
Longtime User
Ah bien, estaba yo confundido ahí entonces, gracias por la aclaración

Y en este foro últimamente ha entrado gente con ganas de ayudar como es nuestro amigo sevillano José J Aguilar (entre muchos otros)

Gracias por la parte que me toca, sólo un matiz sin importancia, soy de Jerez (Cádiz), aunque vivo en Sevilla, jeje. Como yo les digo a los sevillanos (que son muy buena gente pero nos gusta meternos con ellos) "camino entre vosotros pero no soy uno de los vuestros" :)
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Ah bien, estaba yo confundido ahí entonces, gracias por la aclaración



Gracias por la parte que me toca, sólo un matiz sin importancia, soy de Jerez (Cádiz), aunque vivo en Sevilla, jeje. Como yo les digo a los sevillanos (que son muy buena gente pero nos gusta meternos con ellos) "camino entre vosotros pero no soy uno de los vuestros" :)

Perdon por el error, como pone en tu nick Sevilla...
No te preocupes, somos casi paisanos, nací en un pueblo demasiado conocido ultimamente (en los medios) de la provincia de Cádiz y vivo en Barcelona desde hace mas años de los que pone en tu Nick :D, pero como se suele decir para quedar bien, soy ciudadano del mundo :cool: , ahh, y estuve no hace mucho en Jerez, tengo una sobrina allí ;)

Saludos
 

josejad

Expert
Licensed User
Longtime User
No caigo de qué pueblo eres... pero si pasas de nuevo de Jerez, avisa y si ando por allí nos tomamos una cerveza.

saludos,
 

J M Movilla Cuadrado

Member
Licensed User
Qué bueno que "por mi culpa" se haya producido este diálogo tan estupendo sobre el acceso a los directorios de Android. Y qué buenísimo que mi problema haya quedado resuelto a la perfección, con el código que José J. Aguilar me aporta en el post FileDialog no presenta los archivos buscados.

Únicamente me queda advertirle a bgsoft que no le creo en eso de que "Posiblemente yo sea mas... mayor que no viejo :D que tu" (¿tú más de 87 años???), aunque sí es cierto que "nunca es tarde para aprender".

Abrazos a ambos andaluces de nascencia de un castellano llano, llano...
 
Last edited:

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola JM

(¿tú más de 87 años???),
Si, no recordaba (es la edad :D) que eras el "benjamin" del foro.

Me alegro que al final resolvieras el problema, y ya sabes, hasta la próxima para ayudarte

Un abrazo a ti para el de la tierra del "fresquito". Estuve un verano en Torregalindo y por la noche con manta :confused: , pero es que los del sur no estamos acostumbrados a ese fresquito del verano.


Saludos
 

J M Movilla Cuadrado

Member
Licensed User
Ay, amigo Jesús; en Torregalindo tienen en invierno más calor que en Burgos (capital) en pleno verano... Si quieres saber lo que es bueno, te invito a un pincho de morcilla de Burgos (no falsificada) con un buen "Ribera", pero esperando que pasen estos frescos heladores... Te pones de acuerdo con José J. y aprovecháis una pasadita por estas tierras. Si el pincho se queda corto, sabed que os tenéis merecido un lechazo asado, de esos que "han mamado oyendo las campanas de nuestra catedral"... Sinceramente.
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Exmo. Sr. don benjamin del foro ;), muchas gracias por la invitación, pero igual te sorprendo y me pego una escapada cuando en Burgos (capital) las ratas ya no vayan con abrigo, que al contrario de Torregalindo van con cantimplora en verano :p

Por que además aprovecharia para subir algo mas arriba y saludar a un amigo de Vitoria de aqui del foro que me debe un txakoli :D , y si el jerezano o cualquier otro se apunta ya seria lo mas, no estaria mal organizar una "quedada gastronómica/vinícola Spanish Forum B4A", pero eso si, nada de programación :D (piensatelo) I love a Riberita (tambien las morcillas de Burgos :D)

Un abrazo

Saludos
 

J M Movilla Cuadrado

Member
Licensed User
No te imaginas la alegría que me ha dado tu mensaje. No he podido verlo hasta ahora porque he estado unas horas con el Rvdo. Prior de la Cartuja de Miraflores y otro par de padres del cenobio, con quienes me une una amistad personal de más de 6 lustros... Lo que se dice viejos amigos, además de amigos viejos... (Bueno, no; al Prior lo conocí veinteañero, cuando pretendía ser recibido en la casa, viniendo de un grupo parecido a los Kikos, de Madrid precisamente...)

Que me parece muy estupenda tu idea de hacer una jornada gastronómica/vinícola, precisamente en Burgos, declarada Capital de la Gastronomía en 2013, y que sigue siendo Capital de la Gastronomía Universal, con su riquísima morcilla, su cordero asado, su acogedor fresco, etc. Y sin olvidar que en Burgos existe también un buen chacolí...

A la espera de vuestras decisiones; hala, valientes...
 
Last edited:
Top