2017-09-13 12 views
-1

私はアンドロイドsqliteデータベースをバックアップしようとしています。私はprogram.Butで与えられた私はコードが1つのフォルダが作成されている場合は、そのフォルダが空です、私のデータベースをバックアップし、どのように私はそれを見ることができます助けてください。 Firefoxのsqlite managerを使用しています。バックアップデータベースをクリックしたときにデータベースをバックアップしてください。SQLiteデータベースをバックアップするには?

マイコード:あなたは、SDカードなどの外部記憶装置への書き込みしようとしているように

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

外部ストレージへの書き込みを許可しましたか?また、 'currentDB'と' backupDB'パスを出力し、それらが正しいことを確認してください。 –

+0

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

+0

[Androidバックアップ/リストア:内部データベースをバックアップする方法?](https://stackoverflow.com/questions/5282936/android-backup-restore-how-to-backup-an-internal-database) – araknoid

答えて

0

これは、私はそれが

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

THE_PATH SDカードを持っているすべてのデバイスのために働く必要がタブレット上の外部SDカードへのパスをキャプチャする方法です私はそうのpublic static Stringです私のDBHelperでこれを使用することができます。ローダーでこのパスを取得します。アクティビティ

関連する問題