簡體   English   中英

從 Zip 文件中創建數據庫 - Android

[英]Create Database from inside a Zip File - Android

我需要從一個.zip 文件中的 a.db 文件創建一個 SQLiteDatabase object 並將其存儲在一個變量中而不提取文件。

.zip 文件將始終具有相同的名稱,並且始終只有 1 個條目,即數據庫文件。

當我嘗試從 .zip 文件創建數據庫文件時,它給了我一個無法轉換為FileZipEntry ,這使事情變得復雜。

或者,當我嘗試通過 openDatabase openDatabase("path-to-zip", null, SQLiteDatabase.OPEN_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()
        }
    }

}

我需要從 a.zip 文件中的 a.db 文件創建一個 SQLiteDatabase object

這是不可能的,對不起。 SQLite 需要文件系統上的文件,而不是 ZIP 文件中的條目。 要么提取文件,要么首先不要 ZIP 它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM