gpt4 book ai didi

android - 从 Zip 文件中创建数据库 - Android

转载 作者:行者123 更新时间:2023-12-04 10:07:24 24 4
gpt4 key购买 nike

我需要从 .zip 文件中的 .db 文件创建一个 SQLiteDatabase 对象,并将其存储在一个变量中而不提取文件。

.zip 文件将始终具有相同的名称,并且始终只有 1 个条目,即数据库文件。

当我尝试从 .zip 文件创建数据库文件时,它给了我一个 ZipEntry不能转换为 File ,这让事情变得复杂。

或者,当我尝试通过 openDatabase("path-to-zip", null, SQLiteDatabase.OPEN_READONLY) 提供 .zip 文件本身时

我收到以下错误:

file is encrypted or is not a database (code 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()
}
}

}

最佳答案

I need to create a SQLiteDatabase object from a .db file that is inside a .zip file



那是不可能的,抱歉。 SQLite 需要文件系统上的文件,而不是 ZIP 文件中的条目。要么解压缩文件,要么首先不要压缩它。

关于android - 从 Zip 文件中创建数据库 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61512277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com