我想将一个文件复制到另一个目录。这些文件是数据库文件。我有类似的东西,但我得到的错误如下:
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,但是我收到了这个错误。怎么解决?
答案 0 :(得分:1)
我认为是因为备份文件夹不存在。在这里添加以下代码:
File outPut = new File(Tools.OUTPUT_BACKUP_DATABASE);
outPut.mkdirs();
这应该创建所需的所有文件夹,如果文件夹已经存在,它不会伤害任何东西。