使用中文字符压缩空文件夹,但结果不是文件夹

时间:2018-04-20 04:25:37

标签: java

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

two --(一 二 三 四) is NOT folder

three --(一 二 三 四 english) is folder

four --(一二三四) is NOT folder

five --(嗯嗯嗯嗯) -- is folder

如你所见, NO.4不是zip文件夹,但NO.5是zip文件夹。但除了文件夹的名称外,它们没有区别。

如果文件夹名称不是中文或不包含中文字符,则没有问题。

使用ZipOutputStream在zip中创建空文件夹的正确方法是什么?

0 个答案:

没有答案