我正在使用 java 7 在 Eclipse 中开发一个项目,我想压缩一个目录,其中包含许多目录和文件并建立一个密码保护,我为它们使用 zip4j 库,它解决了我的问题,但不是全部,因为它只建立目录内文件的密码,而不是根文件夹的密码,换句话说,我希望当我们自动双击 zip 文件时,它会要求我写一个像 windows 一样的密码,所以这样做。这是我使用上述库的代码:
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);
}