如何以编程方式从Android设备中提取文件

时间:2014-07-30 18:21:14

标签: android database cordova

嘿,我正在做一个有数据库的应用程序。我需要将数据库的副本发送到我的电子邮件,作为我项目的一部分。任何人都可以指导我如何继续?。是否可以使用Android代码从设备中提取db文件?或者是其他任何方式吗?我需要将数据库中的所有表发送到某种格式的邮件或db中,以便我们以后可以恢复它。如果有一个链接或片段来跟踪这个过程我很感激 感谢

1 个答案:

答案 0 :(得分:0)

您可以将数据库复制到sdcard&之后你可以发邮件。

public void exportDatabse(String databaseName) {

    try {
        File sd = Environment.getExternalStorageDirectory();
        File data = Environment.getDataDirectory();

        if (sd.canWrite()) {
            String currentDBPath = "//data//" + getPackageName() + "//databases//" +databaseName+ "";
            String backupDBPath = "backupname.db";
            File currentDB = new File(data, currentDBPath);
            File backupDB = new File(sd, 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();
            }else{
                System.out.println(":::");
            }
        }
    } catch (Throwable e) {
        e.printStackTrace();
    }
}

希望这会有所帮助:)