Apache POI HMEF - 如何从MS TNEF消息获取附件大小?

时间:2014-11-12 12:40:28

标签: java apache-poi tnef

我有HMEFMessage并使用

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

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

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

根据这个 - 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很长。

1 个答案:

答案 0 :(得分:2)

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

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

tnefAttachment.getContent().length

将以字节为单位给出附件的大小。

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