CopyFolderType Class
The CopyFolderType class represents an operation to copy folders in an Exchange database.
Inheritance Hierarchy
System.Object
ExchangeWebServices.BaseRequestType
ExchangeWebServices.BaseMoveCopyFolderType
ExchangeWebServices.CopyFolderType
Namespace: ExchangeWebServices
Assembly: EWS (in EWS.dll)
Syntax
'Declaration
<SerializableAttribute> _
Public Class CopyFolderType _
Inherits BaseMoveCopyFolderType
'Usage
Dim instance As CopyFolderType
[SerializableAttribute]
public class CopyFolderType : BaseMoveCopyFolderType
Remarks
The CopyFolder operation copies folders and all their contents while the content is maintained in the same structure. The copied folders will have new folder identifiers and change keys.
Examples
The following code example shows you how to copy two folders to a destination folder and then get the new folder identifiers.
static void CopyFolder(ExchangeServiceBinding esb)
{
// Identify the folders to copy.
FolderIdType folder1 = new FolderIdType();
FolderIdType folder2 = new FolderIdType();
folder1.Id = "AQAlAE1BQG1haW5";
folder2.Id = "AQAlAE1BQG1haW4";
FolderIdType[] folders = new FolderIdType[2] { folder1, folder2 };
// Identify the destination folder.
FolderIdType destFolder = new FolderIdType();
destFolder.Id = "AQAlAE1BQG1haW1";
// Form the copy folder request.
CopyFolderType request = new CopyFolderType();
request.FolderIds = folders;
request.ToFolderId = new TargetFolderIdType();
request.ToFolderId.Item = destFolder;
try
{
// Send the request and get the response.
CopyFolderResponseType response = esb.CopyFolder(request);
ArrayOfResponseMessagesType aormt = response.ResponseMessages;
ResponseMessageType[] rmta = aormt.Items;
foreach (ResponseMessageType rmt in rmta)
{
if (rmt.ResponseClass == ResponseClassType.Success)
{
foreach (BaseFolderType folder in (rmt as FolderInfoResponseMessageType).Folders)
{
// Get the new folder ID and change key.
FolderIdType identifier = folder.FolderId;
}
}
else
{
throw new Exception("Folder copy failed.");
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
See Also