Java 7 を使用して Eclipse でプロジェクトを開発しています。その中に多くのディレクトリとファイルが含まれているディレクトリを圧縮し、保護されたパスワードを設定します。それらに zip4j ライブラリを使用します。ルートフォルダーではなくディレクトリ内のファイルへのパスワード、つまり、zipファイルをダブルクリックすると、Windows SOのようにパスワードを自動的に書き込むように要求されます。上記のライブラリを使用した私のコードは次のとおりです。
public static void zipFile(String password) throws NoSuchAlgorithmException, ZipException
{
// --------Encryption zipParameters (for password protection)-------
//Create ZipParameters
ZipParameters zipParameters = new ZipParameters();
// Set how you want to encrypt files
zipParameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
zipParameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
// Set encryption of files to true
zipParameters.setEncryptFiles(true);
// Set encryption method
zipParameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
// Set key strength
zipParameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
// Set password
zipParameters.setPassword(password);
// --------------------CREATE ZIP file - Zip DIRECTORY------------
//Zip file name
String destinationZipFilePath = "C:/temp/FoldertoCompress.zip";
// Create ZIP file
ZipFile zipFile = new ZipFile(destinationZipFilePath);
// Directory to be Zipped
String directoryToBeZipped = "C:/FoldertoCompress";
// pass (Directory to be Zipped) and ZIP parameters
//for Zip file to be created
zipFile.addFolder(directoryToBeZipped, zipParameters);
System.out.println("Password protected Zip file of Directory "
+directoryToBeZipped+" have been created at "+ destinationZipFilePath);
}