这个Java函数做什么?

时间:2019-05-17 19:28:31

标签: java zip

我正在使用WebAnno,并且试图将创建的zip文件作为项目导入,但是由于zip无效,我一直收到错误消息。 从WebAnno导出项目会创建一个zip文件,当我将其重新导入时该文件是有效的。但是,当我解压缩然后重新压缩时,它略有不同,WebAnno不会将其识别为有效。 我在源代码中找到了用于测试有效性的函数,但我不明白它对该zip文件的确切测试内容。

public static boolean isZipValidWebanno(File aZipFile)
        throws IOException
    {

        boolean isZipValidWebanno = false;
        ZipFile zip = new ZipFile(aZipFile);
        for (Enumeration zipEnumerate = zip.entries(); zipEnumerate.hasMoreElements();) {
            ZipEntry entry = (ZipEntry) zipEnumerate.nextElement();
            if (entry.toString().replace("/", "").startsWith(ImportUtil.EXPORTED_PROJECT)
                    && entry.toString().replace("/", "").endsWith(".json")) {
                isZipValidWebanno = true;
                break;
            }
        }
        return isZipValidWebanno;
}

1 个答案:

答案 0 :(得分:0)

重新打包WebAnno项目存档时的典型错误是在ZIP存档中包含一个顶级文件夹。

适当的WebAnno project archive的结构类似于:

+- <project ID>.json - project metadata file
+- annotation
|  +- <source document name>
|     +- <user ID>.XXX - file representing the annotations for this user in the selected format.
+- annotation_ser
|  +- <source document name>
|     +- <user ID>.ser - serialized CAS file representing the annotations for this user
+- curation
|  +- <source document name>
|     +- CURATION_USER.XXX - file representing the state of curation in the selected format.
|     +- CORRECTION_USER.XXX - correction project: original document state, automation project automatically generated suggestions
curation_ser
+- <source document name>
|  +- CURATION_USER.ser - serialized UIMA CAS representing the state of curation
|  +- CORRECTION_USER.ser - correction project: original document state, automation project automatically generated suggestions
+- log
|  +- <project ID>.log - project log file
+- source - folder containing the original source files

一个典型的错误是人们提取了这样的档案,提取工具创建了一个文件夹来存放所有内容。重新打包时,用户倾向于将此文件夹包含在重新打包的档案中。结果是这样的结构:

+- SOME FOLDER NAME
   +- <project ID>.json
   +- annotation
   .  +- ...
   .

WebAnno不会导入此类存档。确保重新打包的存档文件包括其他顶级文件夹。

披露:我是WebAnno的维护者