解压多个密码保护的zip文件,可以使用Java中的ZipInputStream类和ZipEntry类来实现。下面是一个示例代码:
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class UnzipMultiplePasswordProtectedFiles {
public static void main(String[] args) {
String directory = "目标目录路径";
String[] zipFiles = {"file1.zip", "file2.zip", "file3.zip"};
String password = "密码";
for (String zipFile : zipFiles) {
unzip(directory, zipFile, password);
}
}
public static void unzip(String directory, String zipFile, String password) {
try {
File dir = new File(directory);
if (!dir.exists()) {
dir.mkdirs();
}
FileInputStream fis = new FileInputStream(zipFile);
ZipInputStream zis = new ZipInputStream(fis);
byte[] buffer = new byte[1024];
ZipEntry zipEntry = zis.getNextEntry();
while (zipEntry != null) {
String fileName = zipEntry.getName();
File newFile = new File(directory + File.separator + fileName);
// Create all non-existing directories
new File(newFile.getParent()).mkdirs();
FileOutputStream fos = new FileOutputStream(newFile);
int len;
while ((len = zis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
fos.close();
zipEntry = zis.getNextEntry();
}
zis.closeEntry();
zis.close();
fis.close();
System.out.println("Successfully extracted " + zipFile);
} catch (IOException e) {
System.out.println("Failed to extract " + zipFile + ": " + e.getMessage());
}
}
}
上述代码中,需要将"目标目录路径"替换为你想要解压到的目录路径,"file1.zip"、"file2.zip"、"file3.zip"替换为你要解压的zip文件路径,"密码"替换为相应的密码。
该代码通过循环遍历每个zip文件,使用ZipInputStream逐个解压文件,并将解压后的文件保存到指定目录中。如果解压成功,将打印"Successfully extracted"的提示信息,如果解压失败,将打印"Failed to extract"的提示信息。
请注意,该示例代码仅适用于解压单个密码保护的zip文件,如果zip文件有多个密码,需要根据实际情况进行相应的修改。
推荐的腾讯云相关产品:腾讯云对象存储(COS),用于存储和管理解压后的文件。您可以通过以下链接了解更多信息:
领取专属 10元无门槛券
手把手带您无忧上云