View Full Version : نحوه گرفتن بک آپ و ری استور دیتابیس در اندروید
kazemi72
پنج شنبه 14 اردیبهشت 1396, 17:37 عصر
سلام من چنتا کد رو امتحان کردم ولی کار نمیکنه
من دیتابیسمو از کلاس SQLiteOpenHelper ساختم
کدهایی که از نت میگیرم میان دیتابیس رو از پوشه دیتای پکیج کپی می کنن
اما برنامه من اصا پوشه پکیج هم نداره
ولی دیتابیس داره کار می کنه
کسی میدونه دیتابیس من کجا ذخیره شده ؟
#root#
پنج شنبه 14 اردیبهشت 1396, 20:12 عصر
برای آدرس دهی مسیر دیتابیس از چه کدی استفاده کردید؟
kazemi72
پنج شنبه 14 اردیبهشت 1396, 20:24 عصر
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()+"");
}
}
#root#
جمعه 15 اردیبهشت 1396, 08:17 صبح
مسیر درست به این شکل هست:
/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);
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.