是否可以为sqlite数据库文件选择自定义位置?
如果可能,我想将数据库文件存储在存储卡中.如果用户从一个存储卡切换到另一个存储卡,我希望我的应用程序使用卡上可用的任何版本的数据库文件.
默认情况下,您的数据库存储在data/data/your_package/databases中
您可以使用提供自定义数据库路径的位置作为第一个参数.SQLiteDatabase
openOrCreateDatabase
您可以使用以下方法访问存储在SD卡上的数据库:
import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; public class MyClass { private SQLiteDatabase myDB = null; // Constructor public MyClass() { try { myDB = SQLiteDatabase.openDatabase(stPathToDB, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS|SQLiteDatabase.OPEN_READONLY); } catch (SQLException e) { e.printStackTrace(); } } // Destructor public void finalize() { myDB.close(); } }
NO_LOCALIZED_COLLATORS =打开数据库而不支持本地化的合作者.
为了获得SD卡的路径,您可以使用:
stPathToDB = android.os.Environment.getExternalStorageDirectory().toString()+"/dbase.sqlite"
Rgds Layne