问题
I have been trying to figure out how to get a list of all outlook folders for quite some time now, but can only get a list of the default folders (i.e. Inbox, outbox, sent items, deleted items, etc...). What if I have personal or custom folders that I have created? For instance, if I add a folder to outlook called "Receipts", this would not be a default folder and would not show up under the "default folders". How would I access this folder using Microsoft.Office.Interop.Outlook in c#.
I am trying to create a way to automatically download certain new messages into a spreadsheet from any given folder. I figured if I can get a list of all folders then I can only get the messages from the chosen folders.
Outlook._Folders oFolders;
Outlook.MAPIFolder oPublicFolder = olNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox).Parent;
foreach (Outlook.MAPIFolder Folder in oFolders)
回答1:
This should print out all the folders in your outlook including your public folders.
foreach (MAPIFolder folder in olNS.Folders)
{
GetFolders(folder);
}
public void GetFolders(MAPIFolder folder)
{
if (folder.Folders.Count == 0)
{
Console.WriteLine(folder.FullFolderPath);
}
else
{
foreach (MAPIFolder subFolder in folder.Folders)
{
GetFolders(subFolder);
}
}
}
回答2:
See on MSDN "How to: Enumerate Folders": http://msdn.microsoft.com/en-us/library/ff184607.aspx
来源:https://stackoverflow.com/questions/10423989/get-list-of-all-outlook-folders-and-subfolders