Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Zip文件中创建数据库-Android_Android_Database_Zip - Fatal编程技术网

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

从Zip文件中创建数据库-Android,android,database,zip,Android,Database,Zip,我需要从.zip文件中的.db文件创建一个SQLiteDatabase对象,并将其存储在变量中,而不提取文件 .zip文件将始终具有相同的名称,并且始终只有一个条目,即数据库文件 当我试图从.zip文件创建一个数据库文件时,它会返回一个ZipEntry,无法转换为文件,这使事情变得复杂 或者,当我尝试通过openDatabase(“zip路径”,null,SQLiteDatabase.OPEN\u READONLY)为.zip文件本身提供数据时 我得到以下错误: 文件已加密或不是数据库(代码26

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

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

当我试图从.zip文件创建一个数据库文件时,它会返回一个
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文件中的条目。要么解压缩文件,要么不压缩文件。

谢谢!知道这是不可能的对我帮助很大。现在我可以开始考虑不同的方法了。