#java #apache-poi
#java #apache-poi
Вопрос:
Я использую hsmf poi от apache для обработки файлов outlook .msg.
Когда я пытаюсь получить дату с помощью функции getdate MAPI, она выдает исключение ChunkNotFound, я не знаю, что происходит не так.
Вот фрагмент кода
Сообщение MAPIMessage = новое сообщение MAPIMessage(«TestFolder/» Filename);
String Result = msg.getSubject(); // works
Calendar CaObj = msg.getMessageDate(); ->Throws a ChunkNotFoundException here
Есть идеи?
Ответ №1:
Исключение ChunkNotFoundException выдается, потому что в файле, содержащем дату сообщения, нет фрагмента
По умолчанию MAPIMessage выдает исключение ChunkNotFoundException, когда вы запрашиваете что-то, чего там нет. Если вы хотите, вы можете изменить это, чтобы вместо этого возвращалось значение Null. Сначала просто вызовите setReturnNullOnMissingChunk(true), затем вместо этого вы получите нули
Комментарии:
1. Спасибо, но мне нужно получить эти отметки даты и времени. Не все файлы msg имеют временные метки? Есть ли какой-либо другой способ получить временные метки из этих файлов?
2. Только отправленные электронные письма будут иметь временную метку отправки сообщения, которую возвращает getMessageDate. В файле, который не был отправлен, могут быть другие даты, но вам нужно будет перечислить фрагменты, чтобы найти тот, который является датой, чтобы найти его
3. Это может быть ошибка, как сообщается здесь: bz.apache.org/bugzilla/show_bug.cgi?id=57744 Исправлено в apache poi 3.11
4. @Zardo свойства фиксированной длины по-прежнему обрабатываются не совсем правильно, см. bz.apache.org/bugzilla/show_bug.cgi?id=53784