如何检测 7zip 文件是否受密码保护



我们的项目使用的是JAVA,UI允许客户上传带/不带密码的7-zip文件,要求是检查文件是否受密码保护。

我该怎么做?

提前谢谢。

如果你使用 sevenzipjbind,当你得到 ISevenZipInArchive 时,你可以检查它是否具有 ENCRYPTED 属性

使用 sevenzipjbind 仅检查存档属性是不够的。您必须检查存档中每个项目的属性。

boolean isEncrypted(IInArchive archive) throws SevenZipException {
    if (Boolean.TRUE.equals(archive.getArchiveProperty(PropID.ENCRYPTED))) return true;
    for (int i=0;i<archive.getNumberOfItems();i++) {
        if (Boolean.TRUE.equals(archive.getProperty(i,PropID.ENCRYPTED))) return true;
    }
    return false;
}

最新更新