Flutter存档:解压缩密码保护的文件夹

时间:2019-07-19 07:50:02

标签: flutter dart io

在Flutter应用程序中,我必须从远程服务器下载受密码保护的zip文件夹,然后导入应用程序内部的.sqlite

我正在尝试使用archive库,但是我当然愿意寻求更好的解决方案。

我使用了password方法的ZipDecoder().decodeBytes()参数,但是它对我不起作用。

//inside the `onDone()` callback of an http request
Archive archive = ZipDecoder().decodeBytes(
    _myDownloadedData,
    password: "mySuperSecretPsw", //here I set the archive psw
);
Uint8List fileDbBytes = Uint8List.fromList(archive.first.content);
setAsWorkingDb(fileDbBytes);

上面摘录中的archive.first.content看起来仍然是加密的。我收到以下错误:

E/SQLiteLog(12256): (26) file is encrypted or is not a database
E/DefaultDatabaseErrorHandler(12256): Corruption reported by sqlite on database: /data/user/0/my.own.package/app_flutter/working_data.db
E/DefaultDatabaseErrorHandler(12256): deleting the database file: /data/user/0/my.own.package/app_flutter/working_data.db

1 个答案:

答案 0 :(得分:0)

您可以尝试

Archive archive = ZipDecoder().decodeBytes(
   _myDownloadedData,
   verify: true,
   password: "mySuperSecretPsw", )