

javaでパスワード付きのzipファイルを作ろうとしています  
引数は以下の通り

  1. 出力するzipのファイルパス
  2. パスワード
  3. zipファイルに入れるフォルダパス

実行した結果、引数「1.」に記述したパスにzipファイルは出来上がったものの、パスワードが付いていませんでした…  
解凍すると引数「3.」のフォルダが入っており、そのフォルダの中身も元フォルダと同じです  
また、引数「3.」のフォルダの中身は、ファイルとフォルダが混同しています  
どうすればパスワード付きのzipになるのか教えていただきたいです

以下、ソースコードと参考にしたサイトです

[code]

    package zip_with_password;
    
    import java.io.File;
    
    import net.lingala.zip4j.ZipFile;
    import net.lingala.zip4j.model.ZipParameters;
    import net.lingala.zip4j.model.enums.EncryptionMethod;
    
    public class Test {
    
        public static void main(String[] args) {
            // 圧縮用パラメーター
            ZipParameters zipParameters = new ZipParameters();
            zipParameters.setEncryptFiles(true);
            zipParameters.setEncryptionMethod(EncryptionMethod.ZIP_STANDARD);
             
            try {
                String outputPath = args[0];
                String password = args[1];
                System.out.println("get outputPath : " + outputPath); // debug
                System.out.println("get password : " + password); // debug
             
                // ZipFileインスタンスを生成します。
                // コンストラクタの引数に、"出力先" と "パスワード" を指定します。
                @SuppressWarnings("resource")
                ZipFile zipFile = new ZipFile(outputPath, password.toCharArray());
                // 圧縮するファイルをパスで指定
                String inputPath = args[2];
                System.out.println("get inputPath : " + inputPath); // debug
                File folder = new File(inputPath);
                zipFile.addFolder(folder, zipParameters);                       
                    
                
            } catch (Exception e) {
                // 例外処理
                e.printStackTrace();
            }
            
            System.out.println("end"); // debug
        }
    
    }
    
    
[/code]

参考：  
<https://kita-note.com/java-password-protected-zip-zip4j>

よろしくお願いします


CC BY-SA 4.0
2022-02-03T12:03:52.563
86121
2022-02-03T20:44:32.193
2022-02-03T12:08:29.930
3060
50657
question
java
javaのzip4jでパスワード付きのzipファイルを作りたい


記載されているコードを実行してみましたが、想定通りの挙動になっているように見えます。  
なお、ファイル名(などディレクトリ構造)が見えるのは ZIP の仕様です。

[.ZIP File Format Specification
6.2](https://en.wikipedia.org/wiki/ZIP_\(file_format\)#Encryption)
でファイル名の暗号化も仕様化されたそうですが、 zip4j は対応していないようです([参考](https://github.com/srikanth-
lingala/zip4j/issues/163))。


CC BY-SA 4.0
2022-02-03T20:44:32.193
86128
2022-02-03T20:44:32.193
2808
86121
answer