static void CountContents(FolderInfo folder) { FolderInfoCollection rootFolders = folder.GetSubFolders(); totalItems += folder.ContentCount; if (folder.ContentCount > 0) { //foreach (var message in folder.GetContents(i, 50)) foreach (var message in folder.EnumerateMapiMessages()) { var mi = new MessageInfo { Id = message.InternetMessageId, Subject = message.Subject, AttachmentCount = message.Attachments.Count }; Console.WriteLine(mi.Subject); outputData.Add(mi); } } Console.WriteLine(folder.DisplayName + ": " + folder.ContentCount.ToString()); foreach (FolderInfo subFolder in rootFolders) { // totalItems += subFolder.GetSubFolders().Count(); CountContents(subFolder); } }
void HandleFolderAndSubfolders(Action <MapiMessage> handler, FolderInfo folderInfo, MailConversionOptions options) { foreach (MapiMessage mapiMessage in folderInfo.EnumerateMapiMessages()) { handler(mapiMessage); } if (folderInfo.HasSubFolders == true) { foreach (FolderInfo subfolderInfo in folderInfo.GetSubFolders()) { HandleFolderAndSubfolders(handler, subfolderInfo, options); } } }
// ExStart:AddMessagesFromOtherPST private static void BulkAddFromAnotherPst(string source) { using (PersonalStorage pst = PersonalStorage.FromFile(source, false)) using (PersonalStorage pstDest = PersonalStorage.FromFile(RunExamples.GetDataDir_Outlook() + "PersonalStorageFile1.pst")) { // Get the folder by name FolderInfo folderInfo = pst.RootFolder.GetSubFolder("Contacts"); MessageInfoCollection ms = folderInfo.GetContents(); // Get the folder by name FolderInfo f = pstDest.RootFolder.GetSubFolder("myInbox"); f.MessageAdded += new MessageAddedEventHandler(OnMessageAdded); f.AddMessages(folderInfo.EnumerateMapiMessages()); FolderInfo fi = pstDest.RootFolder.GetSubFolder("myInbox"); MessageInfoCollection msgs = fi.GetContents(); } }