2017-09-13 1 views
-1

J'essaie de sauvegarder un sqlite db android. si je cours le code un dossier est créé comme donné dans le programme. Mais ce dossier est vide, aidez-moi svp à sauvegarder ma base de données et comment je peux l'afficher. Suis en utilisant Firefox sqlite manager.Aide-moi à sauvegarder ma base de données quand je clique sur un bouton de sauvegarde db.Comment sauvegarder une base de données SQLite?

Mon code:

public void exportDatabase(String databaseName) { 

    try { 
     File sd = Environment.getExternalStorageDirectory(); 
     File data = Environment.getDataDirectory(); 

     if (sd.canWrite()) { 
      String currentDBPath = "//data//"+getPackageName()+"//databases//"+databaseName+""; 
      String backupDBPath = "PRIM.sqlite"; 
      File currentDB = new File(data, currentDBPath); 
      File backupDB = new File(sd, backupDBPath); 
      System.out.println("@@ Enter 12222222222222"); 
      if (currentDB.exists()) { 
       FileChannel src = new FileInputStream(currentDB).getChannel(); 
       FileChannel dst = new FileOutputStream(backupDB).getChannel(); 
       dst.transferFrom(src, 0, src.size()); 
       src.close(); 
       dst.close(); 
       System.out.println("@@ Enter 2"); 
      } 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

Avez-vous demandé l'autorisation d'écrire sur un stockage externe? Imprimez également les chemins 'currentDB' et' backupDB' et assurez-vous qu'ils sont corrects. –

+0

try https://stackoverflow.com/a/13504743/4146722 –

+0

Copie possible de [sauvegarde/restauration Android: comment sauvegarder une base de données interne ?] (https://stackoverflow.com/questions/5282936/android-backup-restore-how-to-backup-an-internal-database) – araknoid

Répondre

0

voici comment je capture le chemin vers la carte externe SD sur une tablette il devrait fonctionner pour tous les appareils qui ont une CARTE SD

 File removable = ContextCompat.getExternalFilesDirs(this, null)[1]; 
     THE_PATH = String.valueOf(removable) 

the_path est une chaîne statique publique donc je peut l'utiliser dans mon DBHelper dès maintenant je capture ce chemin sur le chargeur Activité