Работа с элементами календаря в PST-файле

Добавление MapiCalendar в PST

Создание нового PST-файла и добавление подпапок показало, как создать PST-файл и добавить к нему подпапку. С помощью Aspose.Email вы можете добавить MapiCalendar в подпапку Календаря PST-файла, который вы создали или загрузили. Ниже приведены шаги для добавления MapiCalendar в PST:

  1. Создайте объект MapiCalendar.
  2. Установите свойства MapiCalendar с помощью конструктора и методов.
  3. Создайте PST с помощью метода PersonalStorage.Create().
  4. Создайте предопределенную папку (Календарь) в корне PST-файла, обратившись к корневой папке и затем вызвав метод AddMapiMessageItem().

Следующий фрагмент кода показывает, как создать MapiCalendar и затем добавить его в папку календаря только что созданного PST-файла.

Сохранение элементов календаря из PST на диск в формате ICS

Эта статья показывает, как получить элементы календаря из файла Outlook PST и сохранить календарь на диск в формате ICS. Используйте классы PersonalStorage и MapiCalendar для получения информации о календаре. Ниже приведены шаги для сохранения элементов календаря:

  1. Загрузите PST-файл в класс PersonalStorage.
  2. Просмотрите папку Календарь.
  3. Получите содержимое папки Календарь, чтобы получить коллекцию сообщений.
  4. Переберите коллекцию сообщений.
  5. Вызовите метод PersonalStorage.ExtractMessage(), чтобы получить информацию о контакте в классе MapiCalendar.
  6. Вызовите метод MapiCalendar.Save(), чтобы сохранить элемент календаря на диск в формате ICS.

Программа ниже загружает PST-файл с диска и сохраняет все элементы календаря в формате ICS. Файлы ICS затем можно использовать в любой другой программе, которая может загрузить стандартный файл календаря ICS. Открытый в Microsoft Outlook, файл ICS выглядит как на приведенном ниже скриншоте.

todo:image_alt_text
Следующий фрагмент кода показывает, как экспортировать элементы календаря из Outlook PST в формат ICS.

Сохранение как ICS с оригинальной меткой времени

Следующие функции доступны для сохранения элементов календаря в формате ICS с сохранением их оригинальной информации о дате и времени:

Используйте приведенный ниже образец кода, чтобы реализовать функции в своем проекте:

var cal = pst.ExtractMessage(msgInfo).ToMapiMessageItem() as MapiCalendar;

if (cal != null)
{
  cal.Save("cal.ics", new MapiCalendarIcsSaveOptions() { KeepOriginalDateTimeStamp = true});
}

Изменение/удаление событий из повторений

Исключения могут быть добавлены к существующим повторениям с использованием API Aspose.Email для .NET. Следующий образец кода иллюстрирует использование этой функции.