DB からデータを取得し、zip ファイルとしてエクスポートする必要があるアプリケーションがあります。
私のzipファイルはパスワードで保護する必要があるため、いくつかのライブラリをチェックしました。
パスワードの暗号化とzipファイルとしてのエクスポートに役立つライブラリとしてzip4jを入手しました。
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 から行われるため、データは stream であると感じます。これを取得して zip ファイルを抽出する必要があります。