从Zip文件中创建数据库-Android
我需要从.zip文件中的.db文件创建一个SQLiteDatabase对象,并将其存储在变量中,而不提取文件 .zip文件将始终具有相同的名称,并且始终只有一个条目,即数据库文件 当我试图从.zip文件创建一个数据库文件时,它会返回一个从Zip文件中创建数据库-Android,android,database,zip,Android,Database,Zip,我需要从.zip文件中的.db文件创建一个SQLiteDatabase对象,并将其存储在变量中,而不提取文件 .zip文件将始终具有相同的名称,并且始终只有一个条目,即数据库文件 当我试图从.zip文件创建一个数据库文件时,它会返回一个ZipEntry,无法转换为文件,这使事情变得复杂 或者,当我尝试通过openDatabase(“zip路径”,null,SQLiteDatabase.OPEN\u READONLY)为.zip文件本身提供数据时 我得到以下错误: 文件已加密或不是数据库(代码26
ZipEntry
,无法转换为文件
,这使事情变得复杂
或者,当我尝试通过openDatabase(“zip路径”,null,SQLiteDatabase.OPEN\u READONLY)为.zip文件本身提供数据时
我得到以下错误:
文件已加密或不是数据库(代码26)
我做了很多研究,但我就是到处找不到解决办法。有人知道怎么做吗?以下是我的设置:
class DatabaseHelper(private val mContext: Context, factory: SQLiteDatabase.CursorFactory?) :
SQLiteOpenHelper(mContext, DB_NAME, factory, 1) {
private lateinit var mDatabase: SQLiteDatabase
companion object {
private val PATH: String = "../myZipFile.zip"
private val DB_NAME = ZipFile(PATH).entries().nextElement().name
}
init {
try {
mDatabase = SQLiteDatabase.openDatabase(PATH, null, SQLiteDatabase.OPEN_READONLY)
} catch (e: Exception) {
e.printStackTrace()
}
}
}
我需要从.zip文件中的.db文件创建SQLiteDatabase对象
那是不可能的,对不起。SQLite需要文件系统上的文件,而不是ZIP文件中的条目。要么解压缩文件,要么不压缩文件。谢谢!知道这是不可能的对我帮助很大。现在我可以开始考虑不同的方法了。