private long getZipFileSize(final String filename) throws IOException {
        final ZipArchiveInputStream zisPass = new ZipArchiveInputStream(new BufferedInputStream(getInputStream()), ENCODING);
        try {
            for (ZipEntry zipEntry = zisPass.getNextZipEntry(); zipEntry != null; zipEntry = zisPass.getNextZipEntry()) {
                if (filename.equals(zipEntry.getName())) {
                    zisPass.getNextZipEntry(); // internally this read everything until the next entry. The file size is sometimes included at the end of the file entry, and is therefore only available if everything was read.
                    return zipEntry.getSize();
                }
            }
        } finally {
            IOUtils.closeQuietly(zisPass);
        }
        return -1;
    }
Get the file size of a specific file inside the zip archive.
It worth it to spend some extra time to gather the size so that we can visualize a progress while parsing afterwards.
This method is rather time consuming, so don't call this if the size can also be found otherwise.

@param filename the filename of the file inside the zip archive.
@return the uncompressed size of the entry data
main/src/main/java/cgeo/geocaching/files/AbstractImportGpxZipThread.java