نحوه گرفتن بک آپ و ری استور دیتابیس در اندروید
سلام من چنتا کد رو امتحان کردم ولی کار نمیکنه
من دیتابیسمو از کلاس SQLiteOpenHelper ساختم
کدهایی که از نت میگیرم میان دیتابیس رو از پوشه دیتای پکیج کپی می کنن
اما برنامه من اصا پوشه پکیج هم نداره
ولی دیتابیس داره کار می کنه
کسی میدونه دیتابیس من کجا ذخیره شده ؟
نقل قول: نحوه گرفتن بک آپ و ری استور دیتابیس در اندروید
برای آدرس دهی مسیر دیتابیس از چه کدی استفاده کردید؟
نقل قول: نحوه گرفتن بک آپ و ری استور دیتابیس در اندروید
public void backUp() {
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String currentDBPath = "//"+getApplicationContext().getPackageName()+"//databases//database.db";
String backupDBPath = "database.db";
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);
Log.d("backupDB path", "" + backupDB.getAbsolutePath());
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();
Toast.makeText(getApplicationContext(), "Backup is successful to SD card", Toast.LENGTH_SHORT).show();
}
}
} catch (Exception e) {
TextView g=(TextView)findViewById(R.id.asdf);
g.setText(e.toString()+"");
}
}
نقل قول: نحوه گرفتن بک آپ و ری استور دیتابیس در اندروید
مسیر درست به این شکل هست:
/data/data/package_name/databases/database.db
ولی کدهای شما این مسیر رو مشخص میکنند:
/data/package_name/databases/database.db
پیشنهاد میکنم این دو خط در کدهاتون تغییر بدید:
String currentDBPath = context.getApplicationInfo().dataDir +
"/databases/" + "database.db";
File currentDB = new File(currentDBPath);