Что делает эта функция Java? - PullRequest
0 голосов
/ 17 мая 2019

Я использую 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 голосов
/ 22 июня 2019

Типичная ошибка при повторной упаковке архива проекта WebAnno - включение папки верхнего уровня в ZIP-архив.

Собственный Архив проекта WebAnno имеет структуру в следующем виде:

+- <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

...