1

我有一个应用程序需要从数据库中获取数据并导出为 zip 文件。

由于我的 zip 文件需要密码保护,我检查了一些库。

我将 zip4j 作为一个库,它可以帮助我进行密码加密并导出为 zip 文件。

ZipParameters parameters = new ZipParameters();
 parameters.setCompressionMethod(Zip4jConstants.COMP_STORE);
 parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);


 parameters.setEncryptFiles(true);
 parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
parameters.setPassword("example");

但是我发现了一些问题。

  1. 无法使用任何 zip 软件提取导出的 zip 文件。只有 WinZip 和 7-zip 可以完美提取。我不知道为什么其他软件无法提取。我认为其他软件不支持加密技术 AES_STRENGTH_256。如果我错了,请纠正我

  2. 当用户单击 gmail 中的附件时,我需要执行导入。所以我尝试获取 zip 文件。但它以流的形式出现

    <intent-filter>
     <action android:name="android.intent.action.VIEW" />
     <action android:name="android.intent.action.EDIT" />
     <category android:name="android.intent.category.DEFAULT" />
    <data
     android:mimeType="application/octet-stream"
     android:host="*" 
     android:pathPattern=".*\\.csv"
     />
    </intent-filter>
    

但我看到 zip4j 库无法从流中读取。

有了这个问题,有人可以帮我实现导入 zip 文件并提取其中的 csv 文件。

由于导入是从 gmail 完成的,我觉得数据以流的形式出现,我们需要获取并提取 zip 文件。

4

0 回答 0