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()); | |
} | |
} | |
} |