Spanish ¿Como obtener carpeta actual?.

angel_

Well-Known Member
Licensed User
Longtime User
Supongo que te refieres a la interna, prueba así:

B4X:
File.DirInternal
 

josejad

Expert
Licensed User
Longtime User

Ingeniero Cognitivo

Active Member
Estoy totalmente de acuerdo Oparra, yo también creo que es recomendable utilizar código que valga para las tres plataformas, pero ¿Has comprobado si devuelve la misma ruta?

He comprobado la ruta. Al parecer la aplicacion se ejecuta desde memoria interna directamente, asi que me parece que me equivoque y si que da la ruta de la aplicacion correctamente. Me parecia raro que la aplicacion se ejecutara directamente en la memoria interna pero al parecer es asi.
Quiero crear una base de datos en la carpeta donde este el apk.
 

TILogistic

Expert
Licensed User
Longtime User
¿Como puedo obtener la ruta de mi aplicacion?.
Gracias.
usted necesita saber la información del PackageManager de su APP.


busque:
 

TILogistic

Expert
Licensed User
Longtime User
ejemplo que puede ayudarte:

y lo demás esta en lo que buscas.

B4X:
Dim ctxt As JavaObject
ctxt.InitializeContext
Dim jpm As JavaObject = ctxt.RunMethod("getPackageManager", Null)
Dim pm As PackageManager
For Each pck As String In pm.GetInstalledPackages
   Dim ApplicationInfo As JavaObject = jpm.RunMethod("getApplicationInfo", Array(pck, 0))
   Log($"Package: ${pck}, Path: ${ApplicationInfo.GetField("publicSourceDir")}"$)
Next

1607109061357.png
 
Last edited:

TILogistic

Expert
Licensed User
Longtime User
ejemplo que puede ayudarte:

y lo demás esta en lo que buscas.

B4X:
Dim ctxt As JavaObject
ctxt.InitializeContext
Dim jpm As JavaObject = ctxt.RunMethod("getPackageManager", Null)
Dim pm As PackageManager
For Each pck As String In pm.GetInstalledPackages
   Dim ApplicationInfo As JavaObject = jpm.RunMethod("getApplicationInfo", Array(pck, 0))
   Log($"Package: ${pck}, Path: ${ApplicationInfo.GetField("publicSourceDir")}"$)
Next

View attachment 103985

nota ver aqui:
 

Attachments

  • 1607110014995.png
    1607110014995.png
    47.4 KB · Views: 203

TILogistic

Expert
Licensed User
Longtime User
EJEMPLO FINAL FULL PATH DE SU APP QUE ESTA EJECUTANDO:

B4X:
    Dim ctxt As JavaObject
    ctxt.InitializeContext
    Dim jpm As JavaObject = ctxt.RunMethod("getPackageManager", Null)
    Dim ApplicationInfo As JavaObject = jpm.RunMethod("getApplicationInfo", Array(Application.PackageName, 0))
    Log($"Package: ${Application.PackageName}, Path: ${ApplicationInfo.GetField("publicSourceDir")}"$)

1607116688065.png


1607116457532.png


Saludos,
 
Last edited:

josejad

Expert
Licensed User
Longtime User
Acceder a la carpeta donde se ejecuta la aplicacion para crear una base de datos en esa carpeta. De momento esta resuelto. Gracias
Entonces la primera respuesta que te dio angel es correcta.
Busca ejemplos de sqlite o de kvs2.
 
Top