为Android的sqlite数据库使用自定义文件

有没有可能为sqlite数据库文件select一个自定义位置?

如果可能,我想将数据库文件存储在存储卡中。 如果用户从一个存储卡切换到另一个存储卡,我希望我的应用程序使用卡上可用的任何版本的数据库文件。

Solutions Collecting From Web of "为Android的sqlite数据库使用自定义文件"

默认情况下,你的数据库存储在data / data / your_package / databases中

您可以使用SQLiteDatabase openOrCreateDatabase ,您可以将自定义数据库的path作为第一个参数。

您可以使用以下命令访问存储在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卡的path,你可以使用:

 stPathToDB = android.os.Environment.getExternalStorageDirectory().toString()+"/dbase.sqlite" 

Rgds Layne