微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

以严格的方式验证zip存档

如何解决以严格的方式验证zip存档

一个半破碎的zip归档文件,可以从中提取出来,但给出一个半破碎的文件

Ubuntu存档管理器从存档中提取内容,但发出警告:

enter image description here

以下Java代码完全没有错误

 import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
 import org.apache.commons.compress.archivers.zip.ZipFile;

 import org.apache.commons.io.IoUtils;

 ...

 public static boolean isValidZipFile(final File file) {
        if (file.length() == 0) return false;

        try (ZipFile zipFile = new ZipFile(file)) {
            final Enumeration<ZipArchiveEntry> entries = zipFile.getEntries();

            while (entries.hasMoreElements()) {
                ZipArchiveEntry entry = entries.nextElement();

                if (entry.getName().endsWith(".txt")) {
                    final InputStream is = zipFile.getInputStream(entry);

                    byte[] bytes = IoUtils.toByteArray(is);

                    return true;
                }
            }
        } catch (IOException e) {
            return false;
        }

        return false;
    }

依赖项:

    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.7</version>
    </dependency>

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-compress</artifactId>
        <version>1.20</version>
    </dependency>

N.B。存档的内容是单个文本文件(事先同意)。

。如何严格验证zip文件,以使其在这种情况下无效?

PS 。可以使用除apache-commons-compress之外的其他库重写代码。最终目标是验证可靠性。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。