public static void main(String[] args) throws IOException {
ZipOutputStream o1 = getZipOut(new File("C:\\Users\\chanc\\Desktop\\output1.zip"));
ZipOutputStream o2 = getZipOut(new File("C:\\Users\\chanc\\Desktop\\output2.zip"));
ZipOutputStream o3 = getZipOut(new File("C:\\Users\\chanc\\Desktop\\output3.zip"));
ZipOutputStream o4 = getZipOut(new File("C:\\Users\\chanc\\Desktop\\output4.zip"));
ZipOutputStream o5 = getZipOut(new File("C:\\Users\\chanc\\Desktop\\output5.zip"));
createEmptyFolder(o1,"a b c d ee ff gg hhh/");
createEmptyFolder(o2,"一 二 三 四/");
createEmptyFolder(o3,"一 二 三 四 english/");
createEmptyFolder(o4,"一二三四/");
createEmptyFolder(o5,"嗯嗯嗯嗯/");
}
public static ZipOutputStream getZipOut(File file ) throws FileNotFoundException {
return new ZipOutputStream(new FileOutputStream(file));
}
public static void createEmptyFolder(ZipOutputStream os,String location) throws IOException {
os.putNextEntry(new ZipEntry(location));
os.closeEntry();
os.flush();
os.close();
}
我创建了五个zip文件,并在每个zip文件中添加一个空条目以创建一个空文件夹。下面的结果可以看到
one --(a b c d ee ff gg hhh) is folder
three --(一 二 三 四 english) is folder
如你所见, NO.4不是zip文件夹,但NO.5是zip文件夹。但除了文件夹的名称外,它们没有区别。
如果文件夹名称不是中文或不包含中文字符,则没有问题。
使用ZipOutputStream在zip中创建空文件夹的正确方法是什么?