Working with Folders on WebDav

Listing all Folders from Server

Aspose.Email API provides the capability to connect to the Exchange Server and list all the folders and sub-folders. You can also retrieve all the sub-folders from each folder recursively. This article shows how to retrieve all the sub-folders from the Exchange server and retrieve folders with pagination.

Using WebDav

The following code snippet shows you how to List folders from Exchange Server.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
public static void Run()
{
try
{
ExchangeClient client = new ExchangeClient("http://ex07sp1/exchange/Administrator", "user", "pwd", "domain");
Console.WriteLine("Downloading all messages from Inbox....");
ExchangeMailboxInfo mailboxInfo = client.GetMailboxInfo();
Console.WriteLine("Mailbox URI: " + mailboxInfo.MailboxUri);
string rootUri = client.GetMailboxInfo().RootUri;
// List all the folders from Exchange server
ExchangeFolderInfoCollection folderInfoCollection = client.ListSubFolders(rootUri);
foreach (ExchangeFolderInfo folderInfo in folderInfoCollection)
{
// Call the recursive method to read messages and get sub-folders
ListSubFolders(client, folderInfo);
}
Console.WriteLine("All messages downloaded.");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private static void ListSubFolders(ExchangeClient client, ExchangeFolderInfo folderInfo)
{
Console.WriteLine(folderInfo.DisplayName);
try
{
// If this folder has sub-folders, call this method recursively to get messages
ExchangeFolderInfoCollection folderInfoCollection = client.ListSubFolders(folderInfo.Uri);
foreach (ExchangeFolderInfo subfolderInfo in folderInfoCollection)
{
ListSubFolders(client, subfolderInfo);
}
}
catch (Exception)
{
}
}