2012-06-22 49 views
4

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

+1

如果您在设备上测试,则无法看到数据库。如果它是一个仿真器,那么可能是数据库没有创建。 – Anu

回答

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"); 
    } 
} 
+0

是的,我正在使用真正的设备是否有办法看到数据库和表? – sandee

+0

+1以获得完美的解释。 –

相关问题