【问题标题】:Apache POI HMEF - How to get attachment size from MS TNEF message?Apache POI HMEF - 如何从 MS TNEF 消息中获取附件大小?
【发布时间】:2015-01-09 07:44:40
【问题描述】:

我有一个HMEFMessage 并使用

迭代所有附件
for (Attachment tnefAttachment : hmef.getAttachments()) {

可以使用tnefAttachment.getMAPIAttribute(MAPIProperty.ATTACH_SIZE) 获取附件大小。该方法返回 MAPIAttribute 实例,它只有 getData(),它返回 byte[]。

如何将 byte[] 从 MAPIAttribute 转换为 Long(大小)?

据此 - https://poi.apache.org/apidocs/org/apache/poi/hmef/attribute/package-summary.html - 有一个 MAPIStringAttribute.getAsString(attr),它不适用于 ATTACH_SIZE。

编辑 - 根据http://grepcode.com/file/repo1.maven.org/maven2/org.openl.rules/org.openl.lib.poi.dev/5.9.4.1/org/apache/poi/hsmf/datatypes/MAPIProperty.java,ATTACH_SIZE 为 Long。

【问题讨论】:

    标签: java apache-poi tnef


    【解决方案1】:

    MAPIProperty.ATTACH_SIZE 仅表示您使用getMAPIAttribute() 请求的属性,因此其类型无关紧要。

    我建议使用内容的大小来解决您的问题:

    tnefAttachment.getContent().length
    

    将为您提供附件的大小(以字节为单位)。

    如果要将字节数组转换为长整数,请参阅this question

    【讨论】:

    • 是的,但是调用 getContent() 会从服务器下载文件,不是吗?我想在不实际获取文件的情况下获得大小。
    • HSMF 无论如何都适用于文件。如果您不想使用该方法,请将字节转换为链接问题中的单个 long。
    猜你喜欢
    • 2022-12-21
    • 2015-03-23
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    相关资源
    最近更新 更多