我已经根据该线程编写了代码(Bane的第三篇文章) Zipping a folder which contains subfolders
如果我们观察代码,实际上它被拆分为两个,因为它是在main方法上调用的。我对代码执行的操作是,将主方法代码转换为常规方法,该方法将接受zip文件的将来文件名作为参数:
public void (String myZipFileName) {
FileOutputStream fos = new FileOutputStream("C:\\Users\\vebrpav\\" + myZipFileName);
ZipOutputStream zos = new ZipOutputStream(fos);
addDirToZipArchive(zos, new File("C:\\Users\\vebrpav\\Downloads\\"), null);
zos.flush();
fos.flush();
zos.close();
fos.close();
}
后来我意识到,我希望将2个方法合并为一个,只接受myZipFileName作为参数的方法。
我试图修改代码,但是我对if语句(如果文件是目录)感到困惑。
if (fileToZip.isDirectory()) {
System.out.println("+" + zipEntryName);
for (File file : fileToZip.listFiles()) {
addDirToZipArchive(zos, file, zipEntryName);
}
如果我的代码仅接受zip文件的名称作为参数,我应该如何合并这两种方法?这可能吗?