Ler arquivo PST do Outlook e obter informações sobre pastas e subpastas

Ler arquivo PST do Outlook e obter informações sobre pastas e subpastas

Aspose.Email para C++ fornece uma API para ler arquivos PST do Microsoft Outlook. Você pode carregar um arquivo PST do disco ou stream para uma instância da classe PersonalStorage e obter informações sobre seu conteúdo, como pastas, subpastas e mensagens. A API também fornece a capacidade de incluir pastas de pesquisa enquanto percorre as mensagens das pastas PST.

Carregando um arquivo PST

Um arquivo PST do Outlook pode ser carregado em uma instância da classe PersonalStorage. O seguinte trecho de código mostra como carregar o arquivo PST.

For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C
// Load the Outlook PST file
System::SharedPtr<PersonalStorage> personalStorage = PersonalStorage::FromFile(dataDir + L"PersonalStorage.pst");

Exibindo informações de pastas

Após carregar o arquivo PST na classe PersonalStorage, você pode obter informações sobre o nome de exibição do arquivo, pasta raiz, subpastas e contagem de mensagens. O seguinte trecho de código mostra como exibir o nome do arquivo PST, pastas e número de mensagens nas pastas.

For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C
// The path to the File directory.
System::String dataDir = RunExamples::GetDataDir_Outlook();
System::String dst = dataDir + L"PersonalStorage.pst";
// load PST file
System::SharedPtr<PersonalStorage> personalStorage = PersonalStorage::FromFile(dst);
// Get the folders information
System::SharedPtr<FolderInfoCollection> folderInfoCollection = personalStorage->get_RootFolder()->GetSubFolders();
// Browse through each folder to display folder name and number of messages
{
auto folderInfo_enumerator = (folderInfoCollection)->GetEnumerator();
decltype(folderInfo_enumerator->get_Current()) folderInfo;
while (folderInfo_enumerator->MoveNext() && (folderInfo = folderInfo_enumerator->get_Current(), true))
{
System::Console::WriteLine(System::String(L"Folder: ") + folderInfo->get_DisplayName());
System::Console::WriteLine(System::String(L"Total items: ") + folderInfo->get_ContentCount());
System::Console::WriteLine(System::String(L"Total unread items: ") + folderInfo->get_ContentUnreadCount());
System::Console::WriteLine(L"-----------------------------------");
}
}

Recuperando informações da pasta pai a partir de MessageInfo

O seguinte trecho de código mostra como recuperar informações da pasta pai a partir de MessageInfo.

For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C
// Load Pst File
System::String dataDir = RunExamples::GetDataDir_Outlook() + L"PersonalStorage.pst";
{
System::SharedPtr<PersonalStorage> personalStorage = PersonalStorage::FromFile(dataDir);
auto folder_enumerator = (personalStorage->get_RootFolder()->GetSubFolders())->GetEnumerator();
decltype(folder_enumerator->get_Current()) folder;
while (folder_enumerator->MoveNext() && (folder = folder_enumerator->get_Current(), true))
{
auto msg_enumerator = (folder->EnumerateMessages())->GetEnumerator();
decltype(msg_enumerator->get_Current()) msg;
while (msg_enumerator->MoveNext() && (msg = msg_enumerator->get_Current(), true))
{
System::SharedPtr<FolderInfo> fi = personalStorage->GetParentFolder(msg->get_EntryId());
}
}
}