将DB移动到SDCard

时间:2012-11-13 14:21:46

标签: java android database file sd-card

  

可能重复:
  Moving my db to sd card not working

我在我的SD卡的根目录上获得了一个名为test4的文件,但是当我使用sqlite浏览器将其移动到我的计算机时它无效。有什么想法吗?

 File data = Environment.getDataDirectory();
                    File sd = Environment.getExternalStorageDirectory();
                    if (sd.canWrite()) {
                        String currentDBPath = "/data/com.test.this/databases/this_db";
                          String backupDBPath = "/test4";
                        File currentDB = new File(data, currentDBPath);
                        File backupDB = new File(sd, backupDBPath);
                        if (currentDB.exists()) {
                            FileChannel src;
                            try {
                                src = new FileInputStream(currentDB).getChannel();
                                FileChannel dst = new FileOutputStream(backupDB)
                                        .getChannel();
                                try {
                                    dst.transferFrom(src, 0, src.size());
                                    src.close();
                                    dst.close();
                                } catch (IOException e) {
                                    e.printStackTrace();
                                }
                            } catch (FileNotFoundException e) {
                                e.printStackTrace();
                            }
                        }
                    }

Windows称该文件为“20.0 KB”。来自我的模拟器的数据库文件中包含大量条目,但文件只有“9.00 KB”。我创建了多个文件“test1”,“test2”,“test3”,“test4”,但它们都出现了相同的确切大小。我的数据库不是“可复制的”吗?我不知道如何找出答案。 Astro文件管理器有文件详细信息。当我看到有关此文件的详细信息时。它给了我大小,权限是“-rw”,不知道是否有帮助。

0 个答案:

没有答案