java 壓縮檔案 zip 可加密
阿新 • • 發佈:2021-01-07
<dependency> <groupId>net.lingala.zip4j</groupId> <artifactId>zip4j</artifactId> <version>2.6.4</version> </dependency>
public static void zip(File currentDir, String toFilePath, String password) throws Exception { // 生成的壓縮檔案 ZipFile zipFile = newZipFile(toPath); ZipParameters parameters = new ZipParameters(); // 壓縮方式 parameters.setCompressionMethod(CompressionMethod.DEFLATE); // 壓縮級別 parameters.setCompressionLevel(CompressionLevel.NORMAL); // 是否設定加密檔案 parameters.setEncryptFiles(true); // 設定加密演算法 parameters.setEncryptionMethod(EncryptionMethod.AES);// 設定AES加密金鑰的金鑰強度 parameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256); // 設定密碼 if(!Strings.isNullOrEmpty(password)) { zipFile.setPassword(password.toCharArray()); } // 要打包的資料夾 File[] fs = currentDir.listFiles(); // 遍歷test資料夾下所有的檔案、資料夾 for (File f : fList) {if (f.isDirectory()) { zipFile.addFolder(f, parameters); } else { zipFile.addFile(f, parameters); } } }