Apache POI HMEF - Как получить размер вложения из сообщения MS TNEF?
У меня есть 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.
РЕДАКТИРОВАТЬ - 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.
1 ответ
MAPIProperty.ATTACH_SIZE
указывает только атрибут, который вы запрашиваете getMAPIAttribute()
поэтому его тип не имеет значения.
Я предлагаю использовать размер контента для решения вашей проблемы:
tnefAttachment.getContent().length
даст вам размер вложения в байтах.
Если вы хотите преобразовать байтовый массив в long, посмотрите этот вопрос.