SQLite数据库未显示在文件资源管理器中

时间:2012-06-22 04:19:12

标签: android android-sqlite

我的应用程序中有一个SQLite数据库。当我在文件资源管理器中检查数据库是否已创建时,data文件夹中没有任何数据库文件。它甚至没有显示使用adb shell命令。这是否意味着尚未创建数据库?关于如何解决这个问题的任何建议?

1 个答案:

答案 0 :(得分:6)

如果您使用的是实际设备,除非您使用手机,否则您将无法从外部查看或访问该设备。

如果您正在使用模拟器,DDMS视图将允许您导航到它并从那里拉出它。

或者,您可能会遇到创建数据库的问题。没有看到你的代码,我们无法分辨。

修改

如果要从真实设备中获取文件,则需要实施一种方法将其从数据目录复制到您有权访问的位置(例如SD卡)。这样就可以了:

public void backup() {
    try {
        File sdcard = Environment.getExternalStorageDirectory();
        File outputFile = new File(sdcard,
                "YourDB.bak");

        if (!outputFile.exists()) 
             outputFile.createNewFile(); 

        File data = Environment.getDataDirectory();
        File inputFile = new File(data, "data/your.package.name/databases/yourDB");
        InputStream input = new FileInputStream(inputFile);
        OutputStream output = new FileOutputStream(outputFile);
        byte[] buffer = new byte[1024];
        int length;
        while ((length = input.read(buffer)) > 0) {
            output.write(buffer, 0, length);
        }
        output.flush();
        output.close();
        input.close();
    } catch (IOException e) {
        e.printStackTrace();
        throw new Error("Copying Failed");
    }
}