2

可能重复:
将我的数据库移动到 sd 卡不起作用

我在我的 sdcard 的根目录上得到一个名为 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”,不知道这是否有帮助。

4

0 回答 0