【问题标题】:How to get DB Path and Name如何获取数据库路径和名称
【发布时间】:2012-04-14 01:09:48
【问题描述】:

我可以用这个获得数据库路径和名称吗?

Paths.getDbPath();

Paths.getDbName();

我想如果我们在我们的应用程序中使用数据库,我们可以将它存储在 assets 文件夹中并重命名它吗?

【问题讨论】:

  • "Paths" 不是 Android 框架中的一个类,所以如果你不告诉我们你从哪里得到它,就无法回答你的问题。
  • 私有静态字符串 DB_PATH = Paths.getDbPath();私有静态字符串 DB_NAME = Paths.getDbName();我在一个项目中看到了这行代码
  • 你仍然没有告诉我们你在哪里上课。
  • 这里是 my 代码 private void getInfoFromDB(int id) { SQLiteDatabase sql=null;光标 cur=null;光标 cur1=null; int no_of_rows=0;尝试 { sql = SQLiteDatabase.openDatabase(Paths.geDBPath() + Paths.getDbName(), null, SQLiteDatabase.NO_LOCALIZED_COLLATORS); }catch (SQLiteException e) { // TODO: 处理异常 }

标签: android database sqlite path


【解决方案1】:

我不熟悉路径,所以我无法回答你的问题。 但我可以告诉你如何将你的数据库复制到资产

DBHelper 中的方法

public void exportDatabase(String destin) throws IOException {

    File sourceFile = new File(getReadableDatabase().getPath());    
    File destinationDir = new File(Environment.getExternalStorageDirectory(), "DBNAME");
    FileUtils.copyFileToDirectory(sourceFile, destinationDir);


    String sourcetemp = "source.db";
    String destintemp = destin + ".db";
    File from = new File(destinationDir, sourcetemp);
    File to = new File(destinationDir, destintemp);
    try {
        from.renameTo(to);
    }
    catch (Exception e) {
        Log.e(TAG, "Rename failed", e);
    }
}   

希望对你有所帮助。

【讨论】:

  • k 谢谢..如果我们将数据库存储在 assets 文件夹中,那么我们如何在代码中检索它。上述方法是否有效???
【解决方案2】:

您可以使用以下代码找到数据库路径:

    if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1)
{
              DB_PATH = context.getApplicationInfo().dataDir + "/databases/";         
            }
            else
            {              
DB_PATH = "/data/data/" + context.getPackageName() + "/databases/";
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    相关资源
    最近更新 更多