我在Android上阅读了有关导出数据库文件的其他帖子,但我无法弄清楚如何在Downloader文件夹上创建或复制此数据库。
我在我的Manifest(权限)上使用:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
的活动:
我按下按钮时调用此函数但没有任何反应(没有异常,没有文件副本或从currentDBPath创建)
public void exportDatabase() {
try {
File download_folder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File data = Environment.getDataDirectory();
if (download_folder.canWrite()) {
String currentDBPath = "//data//"+getPackageName()+"//databases//"+"YourWords";
String backupDBPath = "YourWords";
File currentDB = new File(data, currentDBPath);
File backupDB = new File(download_folder, backupDBPath);
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();
}
}
} catch (Exception e) {
}
}
答案 0 :(得分:1)
永远没有硬编码路径。
要使File
对象指向数据库,假设数据库位于默认位置use getDatabasePath()
。
此外,永远不会出现异常。
将Log.e("RuslanApp", "Crash in saving database", e);
添加到catch
块,以便您可以使用LogCat查看可能出现的问题。