Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用EWS托管API创建或打开文件夹(如果存在)_C#_Exchangewebservices_Mapi_Ews Managed Api - Fatal编程技术网

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

C# 使用EWS托管API创建或打开文件夹(如果存在),c#,exchangewebservices,mapi,ews-managed-api,C#,Exchangewebservices,Mapi,Ews Managed Api,我们正在将应用程序从MAPI迁移到EWS托管API。在MAPI中,我们可以创建新文件夹,或者使用单个MAPI方法IMAPIFolder::CreateFolder打开它(如果存在) 但我在EWS中找不到这样的功能。 我可以创建这样的文件夹(但如果目标文件夹中已经存在这样的文件夹,则会引发异常): var newFolder=新文件夹(服务); newFolder.DisplayName=“name”; newFolder.Save(WellKnownFolderName.Root); 或者像这

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

但我在EWS中找不到这样的功能。 我可以创建这样的文件夹(但如果目标文件夹中已经存在这样的文件夹,则会引发异常):

var newFolder=新文件夹(服务);
newFolder.DisplayName=“name”;
newFolder.Save(WellKnownFolderName.Root);
或者像这样打开(找到)它

var filter=newsearchfilter.IsEqualTo(FolderSchema.DisplayName,“name”);
service.FindFolders(WellKnownFolderName.Root、过滤器、新FolderView(1));
即,我必须捕获此异常并使用ExchangeService.FindFolders方法查找文件夹。所有这些看起来都非常奇怪。最糟糕的是,在这种情况下,我们必须使用这两个EWS呼叫


是否可以使用单个EWS调用来获取“CreateOrOpen”功能?可能是手动生成EWS请求,或者?

即使我面临类似的问题,对于我们需要进行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
  }