1

我正在使用 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);          
}
4

0 回答 0