Bonsoir
j'ai créé une BD sqlite que j'ai mis dans le répertoire Files de mon projet
sur mon smartphone cette BD se trouve dans
/storage/emulated/0/LaMieCaline/BD/
lorsque j'utilise
MyPath_Local = File.DirRootExternal & "/LaMieCaline/BD/"
sql1.Initialize(MyPath_Local, "lamiecaline.db", False)
j'ai ce message d'erreur
/storage/emulated/0/LaMieCaline/BD/lamiecaline.db is not readable
Tu dois utiliser File.DirInternal.
Et ce dossier n'est pas disponible dans android.
Alors dans tu dois ajouter BD dans l'IDE dans File Manager.
Ensuite, tu dois copier la BD dans File.DirInternal
c'est ce qu'il y a de plus sécuritaire.
Bonjour
merci pour la réponse
ma bd est dans le répertoire Files de mon projet B4A sur mon pc
voici les différentes informations sur les Files.Dir......
je ne trouve pas sur mon android le répertoire de File.DirInternal
pouvez vous m'aider
Pierre
Le répertoire File.DirInternal n'est pas accessible depuis l'extérieur, seule ton application y a accès.
File.DirAssets est équivalent au répertoire Files du project B4A.
File.DirRootExternal était disponible jusqu'à la version 26 de Android.
Google supprime pratiquement tous les accès à des fichiers extérieurs.
Il semble qu'il y a des solutions, mais je n'ai pas encore regardé dans le détails. Il faut chercher sur le forum.
Dans mes application, je suis le seul utilisateur, il n'y en a aucune sur Play Store, je reste avec la version 26 d'Android et File.DirRootExternal.
Je verrais combien de temps Google autorise de charger des applications prévues pour d'anciennes versions d'Android.
Tu ne trouveras pas, c'est un répertoire caché uniquement accessible par ton application. Cependant, a partir de ton application, tu peux copier la bd que tu as dans ton file.dirassets (qui est toujours en lecture seul) vers le répertoire file.dirinternal (lecture et écriture)
Tu dois programmer la copie dans l'application uniquement, parce que le répertoire file.dirinternal est protégé par Android et cela protège ton application
Une fois la copie faite, tu accède a la bd dans file.dirinternal)
Bonjour à tous
grâce à votre aide, je peux ouvrir la BD et insérer des infos
j'ai un problème, lorsque je regarde la BD de mon répertoire Files (File.DirAssets) avec DB Browser, je ne retrouve pas les enregistrements ajoutés (File.DirInternal)
If File.Exists(File.DirInternal,"LaMieCaline.db" =False) Then
File.Copy(File.DirAssets,"LaMieCaline.db",File.DirInternal,"LaMieCaline.db")
End If
sql1.Initialize(File.DirInternal,"LaMieCaline.db",True)
Au lieu de :
If File.Exists(File.DirInternal,"LaMieCaline.db" =False) Then
ce serait plutôt :
If File.Exists(File.DirInternal,"LaMieCaline.db") = False Then
mais je pense que c'est qu'une erreur de frappe ...
Comme je l'ai écrit File.DirAssets est en lecture seulement. C'est pourquoi on doit le copier dans File.DirInternal et là, la bd peut recevoir les écritures / lectures.
Il est donc normal que qu'il n'y a pas de modification de la bd dans DirAssets
Si tu dois absolument voir le contenu de la bd qui est modifier par l'application tu as 3 choix
1) afficher les données que tu as besoin à même l'application. C'est le plus simple, ou
2) envoyer une copie de la bd par courriel, voir (intent dans le forum) Celà se fait un peu plus compliqué, mais réalisable, ou
3) copier la bd dans un répertoire d'Android qui est lisible par Explorateur de Fichier de Windows.... Mais Google complique terriblement cette tâche.
Klaus a dit Dans mes application, je suis le seul utilisateur, il n'y en a aucune sur Play Store, je reste avec la version 26 d'Android et File.DirRootExternal. comment faire
Au lieu de :
If File.Exists(File.DirInternal,"LaMieCaline.db" =False) Then
ce serait plutôt :
If File.Exists(File.DirInternal,"LaMieCaline.db") = False Then
mais je pense que c'est qu'une erreur de frappe ...