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
}
}