Exchange Web 服务 - 读取子文件夹



我从Microsoft使用Exchange Web Services(EWS(。

我的代码是这样的:

ExchangeService server = new ExchangeService(ExchangeVersion.Exchange2007_SP1);

等。

我使用以下代码获取文件夹:

Folder rootfolder = Folder.Bind(server, WellKnownFolderName.MsgFolderRoot);

我在Exchange Server上的文件夹结构为:

Inbox
|
|
Folder1
|
|_Sub_Folder1
| |
| |_Sub_Sub_Folder1
|   |
|   |_Sub_Sub_Sub_Folder1
|
|_Sub_Folder2
| |
| |_Sub_Sub_Folder1
|
Folder2
|
|_Sub_Folder1
|
|_Sub_Folder2

当我使用上面介绍的功能时,我只收到主要文件夹:

InboxFolder1Folder2

我想收到SubFolders...以及接下来我想从SubFolders那里获得物品.

例如:

Folder1
|
|_Sub_Folder1
| |
| |_Sub_Sub_Folder1
|   |
|   |_Sub_Sub_Sub_Folder1 -> I want to get these items

你能帮我并提供一些代码的例子吗?我应该使用什么功能?

我尝试使用:

FindFoldersResults findFoldersResults2 = folder.FindFolders(new FolderView(100));

但是当我收到例如文件夹:InboxFolder1Folder2并且我读ChildFolderCount时,我没有收到subfolders ex的数量。 2 ->我收到计数0.

怎么了?我需要从subfolders阅读这些项目.

我想你有2个问题。第一个:"如何获取子文件夹"和第二个"为什么ChildFolderCoun = 0"。

第二个问题的答案非常简单。您必须调用文件夹。Load(( 并提供一个包含 FolderSchema.ChildFolderCount 属性定义的属性集。

第一个问题的答案是,您必须为回避循环中的每个文件夹调用 FindFolder((。至少我没有找到一个参数或类似的东西来告诉 FindFolder-Method 包含所有子文件夹。

希望对您有所帮助...

您正在寻找验证文件夹是否存在的方法。您可以使用以下方法。它以递归方式搜索每个子文件夹。 更改文件夹视图的遍历属性以进行深层/浅层搜索。

FolderId subfolderInfo;
// Call Method
bool folderExist = isFolderExist(exchange, "Folder1", out subfolderInfo);
//Implementation 
private bool isFolderExist(ExchangeService exchange, string subFolder, out FolderId subfolderInfo)
        {
            try
            {
                FolderView view = new FolderView(100);
                view.PropertySet = new PropertySet(BasePropertySet.IdOnly);
                view.PropertySet.Add(FolderSchema.DisplayName);
                view.Traversal = FolderTraversal.Deep;
                FindFoldersResults findFolderResults = exchange.FindFolders(WellKnownFolderName.Root, view);
                foreach (Folder folder in findFolderResults)
                {
                    if (folder.DisplayName == subFolder)
                    {                        
                        subfolderInfo = folder.Id;
                        return true;
                    }
                }
            }
            catch (Exception Ex)
            {
               ...
            }          
            subfolderInfo = null;
            return false;
        }

相关内容

  • 没有找到相关文章

最新更新