1

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");

しかし、私はいくつかの問題を見つけます。

  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 から行われるため、データは stream であると感じます。これを取得して zip ファイルを抽出する必要があります。

4

0 に答える 0