繁体   English   中英

使用EWS托管API创建或打开文件夹(如果存在)

[英]Create folder or open it if exists using EWS Managed API

我们正在将应用程序从MAPI迁移到EWS托管API。 在MAPI中,我们可以使用单个MAPI方法IMAPIFolder :: CreateFolder创建或打开新文件夹(如果存在)。

但是我在EWS中找不到这种功能。 我可以这样创建文件夹(但是如果目标文件夹中已经存在这样的文件夹,它将抛出异常):

var newFolder = new Folder(service);
newFolder.DisplayName = "name";
newFolder.Save(WellKnownFolderName.Root);

或像这样打开(查找)它

var filter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "name");
service.FindFolders(WellKnownFolderName.Root, filter, new FolderView(1));

即,我必须捕获此异常并使用ExchangeService.FindFolders方法查找文件夹。 所有这些看起来都太不可思议了。 最糟糕的是,在这种情况下,我们必须同时使用这两个EWS调用。

是否可以使用单个EWS调用来获得“ CreateOrOpen”功能? 也许手动建立EWS Request或?

甚至我也面临着类似的问题,对于每个操作,我们都需要调用EWS服务。我没有找到任何一种可以同时执行(创建和打开)功能的EWS服务方法。 因此,我表现出色,并进行了如下多次呼叫。

bool isExists = ews.FolderExists(EwsFolderId.Root, "name");
if (!isExists){
    ews.CreateFolder(EwsFolderId.Root, "name");
 }else{
     //Find folder or get folder code goes here
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM