Как я получаю размер папки с веб-сервисами Exchange Управляемый API 2010 года?

Я пытаюсь использовать Управляемый API 2010 года EWS для получения общего размера почтового ящика пользователя. Я не нашел, что метод веб-сервиса получает эти данные, таким образом, я полагал, что попытаюсь вычислить их. Я нашел один по-видимому применимый вопрос на другом сайте о нахождении размеров почтового ящика с 2007 EWS, но или я не понимаю то, что это просит, чтобы я сделал, или тот метод просто не работает с 2010 EWS.

Noodling вокруг в понимании кода, я смог записать то, что я думал, был метод, который пересечет структуру папок рекурсивно и приведет к объединенному общему количеству для всех папок в Ящике входящих сообщений:

private int traverseChildFoldersForSize(Folder f)
{
    int folderSizeSum = 0;
    if (f.ChildFolderCount > 0)
    {
        foreach (Folder c in f.FindFolders(new FolderView(10000)))
        {
            folderSizeSum += traverseChildFoldersForSize(c);
        }
    }

    folderSizeSum += (int)f.ManagedFolderInformation.FolderSize;

    return folderSizeSum;
}

(Предполагает, что в данной папке существует не больше чем 10 000 папок. Иллюстрация это - безопасная ставка...),

К сожалению, это не работает.

Я - инициирование рекурсия с этим кодом:

Folder root = Folder.Bind(svc, WellKnownFolderName.Inbox);
int totalSize = traverseChildFoldersForSize(root);

Но Исключение Нулевой ссылки выдается, по существу говоря это [folder].ManagedFolderInformation ссылка несуществующего объекта.

Для ясности я также попытался просто получить размер корневой папки:

Console.Write(root.ManagedFolderInformation.FolderSize.ToString());

Который выдал то же исключение NRE, таким образом, я знаю, что это не просто что, после того как Вы добираетесь до определенной глубины в дереве каталогов, что ManagedFolderInformation не существует.

Какие-либо идеи о том, как получить общий размер почтового ящика пользователя? Я рявкаю неправильное дерево?

5
задан Alfred Myers 23 September 2010 в 14:29
поделиться

1 ответ

Первая ссылка - это путь, по которому вы хотите перейти. В сообщении описывается, что папки по умолчанию не считаются «управляемыми папками», поэтому вы получаете NRE в свойстве ManagedFolderInformation для некоторых папок.

В сообщении предлагается добавить расширенное свойство к запросу папок. Вот страница MSDN о том, как это сделать с помощью управляемого API.

Я пытался найти хороший пример, но не нашел. Это должно указать вам правильное направление. Если я что-нибудь найду, то обновлю свой ответ.

1
ответ дан 13 December 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: