Ses*_*ame 8 c# recursion exchange-server exchangewebservices
我有以下收件箱文件夹结构:
Inbox
--ABC
----ABC 2
----ABC 3
--XYZ
----XYZ 2
--123
----123 A
----123 B
----123 C
Run Code Online (Sandbox Code Playgroud)
我正在使用Exchange Web服务和以下代码来查找收件箱文件夹的子文件夹:
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
service.AutodiscoverUrl("MyName@MyDomain.com");
Mailbox mb = new Mailbox("MyName@MyDomain.com");
FindFoldersResults findResults = service.FindFolders(
WellKnownFolderName.Inbox,
new FolderView(int.MaxValue));
foreach (Folder folder in findResults.Folders)
{
Console.WriteLine(folder.DisplayName);
}
Run Code Online (Sandbox Code Playgroud)
这部分有效,因为它返回ABC,XYZ和123文件夹; 不幸的是,它没有返回每个文件夹内的文件夹(ABC 2,ABC 3,XYZ 2,123 A,123 B,123 C).
此外,文件夹可能在其中具有多个级别的子文件夹.
如何编写此代码,以便它将返回所有子文件夹,无论它们的嵌套程度如何?
Jak*_*sen 15
您可以告诉EWS在搜索文件夹时进行深度遍历.您可以使用FolderView.Traversal酒店进行此操作.然后,您的代码将更改为类似于以下内容:
FindFoldersResults findResults = service.FindFolders(
WellKnownFolderName.Inbox,
new FolderView(int.MaxValue) { Traversal = FolderTraversal.Deep });
Run Code Online (Sandbox Code Playgroud)