将一个数据库复制到另一个目录

时间:2014-05-15 11:23:31

标签: android sqlite

我想将一个文件复制到另一个目录。这些文件是数据库文件。我有类似的东西,但我得到的错误如下:

05-15 13:15:01.055: W/System.err(31247): java.io.FileNotFoundException: /mnt/sdcard/storeUGif/backup/gifs.db (No such file or directory)

我的目的地路径:

public static final String DATABASE_INPUT_BACKUP = Environment.getExternalStorageDirectory().getAbsolutePath()+ "/storeUGif/" + SqliteHelper.DATABASE_NAME;

public static final String OUTPUT_BACKUP_DATABASE = Environment.getExternalStorageDirectory().getAbsolutePath() + "/storeUGif/backup/" + SqliteHelper.DATABASE_NAME;

这是我的代码:

private void copyDatabase() throws IOException {

        File outPut = new File(Tools.OUTPUT_BACKUP_DATABASE);
    File inPut = new File(Tools.DATABASE_INPUT_BACKUP);

        FileInputStream is = new FileInputStream(inPut);


        OutputStream os = new FileOutputStream(outPut);


        byte[] buffer = new byte[1024];


        while (is.read(buffer) > 0) {


            os.write(buffer);


        }
        os.flush();
        os.close();
        is.close();
}

我想将文件从源文件夹复制到OUTPUT_BACKUP,但是我收到了这个错误。怎么解决?

1 个答案:

答案 0 :(得分:1)

我认为是因为备份文件夹不存在。在这里添加以下代码:

File outPut = new File(Tools.OUTPUT_BACKUP_DATABASE);
outPut.mkdirs();

这应该创建所需的所有文件夹,如果文件夹已经存在,它不会伤害任何东西。