2011-07-08 7 views
3

アセットフォルダからsqliteデータベースに直接アクセスする方法はありますか、このデータベースをアプリケーションのデータベースフォルダのデバイスデータディレクトリにコピーする必要がありますか?アセットフォルダのアンドロイドデータベース

(例 - Environment.getDataDirectory()+ "/データ/ com.example.myapp /データベース/ myDb.db")

私はかなり大きいデシベル(約11メガバイト)を持っているので、私が尋ねると、アプリに同梱されていなければなりません。データベースがデータディレクトリにコピーされた後、アプリは2倍のスペースをとります。私はこれを避けたい。

また、アプリをインストールした後にアセットフォルダの内容を削除することはできますか?これはいくらかのスペースを節約するのに役立ちます。

ありがとうございました

+0

(現在)データベースはどこに保存されていますか?教えてください。 –

答えて

0

アセットフォルダはコンパイル時のフォルダです。フォルダにアクセスするために"android.resource://"+getPackageName() + "/"を使用し、

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

を使用することができます が、それを実行します。あなたは、はいあなたは資産フォルダからデータベースからファイルを削除することができ、あなたのLinuxにコピーすることなく、

0

にアクセスすることはできませんonCreate()の最後の行;

試してみてください

+0

私が知る限り、APKは変更できない署名入りのzipファイルです。を見て:http://stackoverflow.com/questions/4398523/how-we-can-remove-a-file-from-the-assets-folder-at-runtime-in-android – Sergio

関連する問題