我有一个应用程序需要从DB获取数据并导出为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");
但我发现了一些问题。
无法使用任何zip软件提取导出的zip文件。只有WinZip和7-zip才能完美地提取。我不知道为什么其他软件在提取中失败。我认为其他软件不支持加密技术AES_STRENGTH_256。如果我错了,请纠正我
当用户点击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文件。