3

assets フォルダーから sqlite データベースに直接アクセスする方法はありますか?それとも、最初にこのデータベースをアプリのデータベース フォルダー内のデバイス データ ディレクトリに常にコピーする必要がありますか?

(例 - Environment.getDataDirectory()+"/data/com.example.myapp/databases/myDb.db")

非常に大きなデータベース (約 11 MB) があり、アプリに同梱する必要があるため、質問します。データベースがデータ ディレクトリにコピーされると、アプリは 2 倍のスペースを使用します。これは避けたい。

また、アプリをインストールした後にアセットフォルダの中身を削除することはできますか? これにより、スペースを節約できます。

ありがとう

4

2 に答える 2

0

アセットフォルダーはコンパイル時フォルダーです。Linuxにコピーせずにアクセスすることはできません

于 2011-07-08T05:43:20.867 に答える
0

はい、アセットフォルダからデータベースからファイルを削除できます:"android.resource://"+getPackageName() + "/"フォルダにアクセスしてから使用するために使用できます

File f=new File(_pathToAssestFolder,databasename);
        if(f.exists())
        {f.delete();
        }

onCreate()しかし、関数の最後の行でそれを行います。

それを試してみてください

于 2011-07-08T05:56:32.017 に答える