public static void Run() { // ExStart:SearchMessagesAndFoldersInPST // The path to the File directory. string dataDir = RunExamples.GetDataDir_Outlook(); using (PersonalStorage personalStorage = PersonalStorage.FromFile(dataDir + "Outlook.pst")) { FolderInfo folder = personalStorage.RootFolder.GetSubFolder("Inbox"); PersonalStorageQueryBuilder builder = new PersonalStorageQueryBuilder(); // High importance messages builder.Importance.Equals((int)MapiImportance.High); MessageInfoCollection messages = folder.GetContents(builder.GetQuery()); Console.WriteLine("Messages with High Imp:" + messages.Count); builder = new PersonalStorageQueryBuilder(); builder.MessageClass.Equals("IPM.Note"); messages = folder.GetContents(builder.GetQuery()); Console.WriteLine("Messages with IPM.Note:" + messages.Count); builder = new PersonalStorageQueryBuilder(); // Messages with attachments AND high importance builder.Importance.Equals((int)MapiImportance.High); builder.HasFlags(MapiMessageFlags.MSGFLAG_HASATTACH); messages = folder.GetContents(builder.GetQuery()); Console.WriteLine("Messages with atts: " + messages.Count); builder = new PersonalStorageQueryBuilder(); // Messages with size > 15 KB builder.MessageSize.Greater(15000); messages = folder.GetContents(builder.GetQuery()); Console.WriteLine("messags size > 15Kb:" + messages.Count); builder = new PersonalStorageQueryBuilder(); // Unread messages builder.HasNoFlags(MapiMessageFlags.MSGFLAG_READ); messages = folder.GetContents(builder.GetQuery()); Console.WriteLine("Unread:" + messages.Count); builder = new PersonalStorageQueryBuilder(); // Unread messages with attachments builder.HasNoFlags(MapiMessageFlags.MSGFLAG_READ); builder.HasFlags(MapiMessageFlags.MSGFLAG_HASATTACH); messages = folder.GetContents(builder.GetQuery()); Console.WriteLine("Unread msgs with atts: " + messages.Count); // Folder with name of 'SubInbox' builder = new PersonalStorageQueryBuilder(); builder.FolderName.Equals("SubInbox"); FolderInfoCollection folders = folder.GetSubFolders(builder.GetQuery()); Console.WriteLine("Folder having subfolder: " + folders.Count); builder = new PersonalStorageQueryBuilder(); // Folders with subfolders builder.HasSubfolders(); folders = folder.GetSubFolders(builder.GetQuery()); Console.WriteLine(folders.Count); } // ExEnd:SearchMessagesAndFoldersInPST }
public static void Run() { // ExStart:SearchMessagesAndFoldersInPST // The path to the File directory. string dataDir = RunExamples.GetDataDir_Outlook(); using (PersonalStorage personalStorage = PersonalStorage.FromFile(dataDir + "Outlook.pst")) { FolderInfo folder = personalStorage.RootFolder.GetSubFolder("Inbox"); PersonalStorageQueryBuilder builder = new PersonalStorageQueryBuilder(); // High importance messages builder.Importance.Equals((int)MapiImportance.High); MessageInfoCollection messages = folder.GetContents(builder.GetQuery()); Console.WriteLine("Messages with High Imp:" + messages.Count); builder = new PersonalStorageQueryBuilder(); builder.MessageClass.Equals("IPM.Note"); messages = folder.GetContents(builder.GetQuery()); Console.WriteLine("Messages with IPM.Note:" + messages.Count); builder = new PersonalStorageQueryBuilder(); // Messages with attachments AND high importance builder.Importance.Equals((int)MapiImportance.High); builder.HasFlags(MapiMessageFlags.MSGFLAG_HASATTACH); messages = folder.GetContents(builder.GetQuery()); Console.WriteLine("Messages with atts: " + messages.Count); builder = new PersonalStorageQueryBuilder(); // Messages with size > 15 KB builder.MessageSize.Greater(15000); messages = folder.GetContents(builder.GetQuery()); Console.WriteLine("messags size > 15Kb:" + messages.Count); builder = new PersonalStorageQueryBuilder(); // Unread messages builder.HasNoFlags(MapiMessageFlags.MSGFLAG_READ); messages = folder.GetContents(builder.GetQuery()); Console.WriteLine("Unread:" + messages.Count); builder = new PersonalStorageQueryBuilder(); // Unread messages with attachments builder.HasNoFlags(MapiMessageFlags.MSGFLAG_READ); builder.HasFlags(MapiMessageFlags.MSGFLAG_HASATTACH); messages = folder.GetContents(builder.GetQuery()); Console.WriteLine("Unread msgs with atts: " + messages.Count); // Folder with name of 'SubInbox' builder = new PersonalStorageQueryBuilder(); builder.FolderName.Equals("SubInbox"); FolderInfoCollection folders = folder.GetSubFolders(builder.GetQuery()); Console.WriteLine("Folder having subfolder: " + folders.Count); builder = new PersonalStorageQueryBuilder(); // Folders with subfolders builder.HasSubfolders(); folders = folder.GetSubFolders(builder.GetQuery()); Console.WriteLine(folders.Count); } // ExEnd:SearchMessagesAndFoldersInPST }