Get databases directory for my app programmatically

前端 未结 5 1531
孤城傲影
孤城傲影 2020-12-10 12:20

I want to use a \"pre loaded\" database in my app. There are tons of questions about this and most point to this blog article here or similars.

So far so good. I jus

相关标签:
5条回答
  • 2020-12-10 13:04

    You can use the Method getFilesDir() or getDatabasePath in an Activity-Class to get this Folder.
    More info here

    0 讨论(0)
  • 2020-12-10 13:13

    I used...

    String destPath = getFilesDir().getPath();
    destPath = destPath.substring(0, destPath.lastIndexOf("/")) + "/databases";
    
    0 讨论(0)
  • 2020-12-10 13:14

    Used by SQLiteAssetHelper:

     String path = mContext.getDatabasePath(mName).getPath();
    

    At this time, the database doesn't exist. I think the String just takes the internal path and adds the appropriate modifiers. In fact, this seems to work just fine:

    context.getDatabasePath("a").getParentFile()
    

    Basically, you don't need to have a real database created, just ask it for one.

    0 讨论(0)
  • 2020-12-10 13:15

    Create an empty DB, get the path with getDatabasePath(), then overwrite it with your own.

    0 讨论(0)
  • 2020-12-10 13:19

    You can use getDatabasePath method in your Helper class:

    public class MyDatabase extends SQLiteAssetHelper {
    
        private static final String DATABASE_NAME = "wl.db";
        private static final int DATABASE_VERSION = 1;  
        public String databasePath = "";    
    
        public MyDatabase(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
    
            // you can use an alternate constructor to specify a database location
            // (such as a folder on the sd card)
            // you must ensure that this folder is available and you have permission
            // to write to it
            // super(context, DATABASE_NAME, context.getExternalFilesDir(null).getAbsolutePath(), null, DATABASE_VERSION);
    
            databasePath = context.getDatabasePath("wl.db").getPath();
        }
    
    0 讨论(0)
提交回复
热议问题