Переименовать файл базы данных в ExternalFilesDir в Android
Я копирую свою предварительно заполненную базу данных из ресурсов в каталог внешних файлов приложения. Мой код -
private boolean copyDatabaseFromAssets(Context context, String databaseName , boolean overwrite) {
String outputFile_path = context.getExternalFilesDir(null) + "/" + databaseName;
File outputFile = new File(outputFile_path);
if (outputFile.exists() && !overwrite) {
return true;
}
outputFile_path = context.getExternalFilesDir(null) + "/" + databaseName + ".temp";
outputFile = new File(outputFile_path);
Log.d(LOGCAT, "Initial File Path : " + outputFile_path);
Log.d(LOGCAT, "Initial File : " + outputFile);
outputFile.getParentFile().mkdirs();
try {
InputStream inputStream = context.getAssets().open(databaseName);
OutputStream outputStream = new FileOutputStream(outputFile);
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
outputStream.flush();
outputStream.close();
inputStream.close();
outputFile_path = context.getExternalFilesDir(null) + "/" + databaseName;
outputFile = new File(outputFile_path);
Log.d(LOGCAT, "Final File Path : " + outputFile_path);
Log.d(LOGCAT, "Final File : " + outputFile);
if(outputFile.renameTo(outputFile)){
Log.d(LOGCAT, "Rename was successful!");
} else {
Log.d(LOGCAT, "Rename was NOT successful!");
}
} catch (IOException e) {
if (outputFile.exists()) {
outputFile.delete();
}
return false;
}
return true;
}
Да, упомянутый код копирует базу данных из папки активов во внешний каталог приложения. Но проблема, с которой я сталкиваюсь, заключается в том, что база данных не переименовывается обратно в свое первоначальное имя. Мой соответствующий logcat -
11-25 21:07:01.487 24573-24573/? D/MainActivity: Initial File Path : /storage/emulated/0/Android/data/in.atultiwari.testapp/files/mydb.db.temp
11-25 21:07:01.487 24573-24573/? D/MainActivity: Initial File : /storage/emulated/0/Android/data/in.atultiwari.testapp/files/mydb.db.temp
11-25 21:07:01.509 24573-24573/? D/MainActivity: Final File Path : /storage/emulated/0/Android/data/in.atultiwari.testapp/files/mydb.db
11-25 21:07:01.509 24573-24573/? D/MainActivity: Final File : /storage/emulated/0/Android/data/in.atultiwari.testapp/files/mydb.db
11-25 21:07:01.510 24573-24573/? D/MainActivity: Rename was NOT successful!
Я также использую следующие разрешения в манифесте -
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Я часами не могу понять, где я ошибаюсь?