J'essaie d'utiliser l'API gérée EWS 2010 pour obtenir la taille totale de la boîte aux lettres d'un utilisateur. Je n'ai pas trouvé de méthode de service Web pour obtenir ces données, alors j'ai pensé que j'essaierais de le calculer. J'ai trouvé une question apparemment applicable sur un autre site au sujet de finding mailbox sizes with EWS 2007, mais soit je ne comprends pas ce que cela me demande de faire, soit cette méthode ne marche pas avec EWS 2010.Comment obtenir la taille de dossier avec l'API gérée Exchange Web Services 2010?
Noodling dans le code, Je suis capable d'écrire ce que je pensais était une méthode qui traverserait la structure des dossiers récursive et au total combiné de tous les dossiers dans la boîte de réception:
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;
}
(Suppose il n'y a pas plus de 10.000 dossiers à l'intérieur d'un dossier donné Figure qui est un pari sûr ...)
Malheureusement, cela ne fonctionne pas.
J'initiant la récursion avec ce code:
Folder root = Folder.Bind(svc, WellKnownFolderName.Inbox);
int totalSize = traverseChildFoldersForSize(root);
Mais une exception référence nulle est jeté, dit essentiellement que [folder].ManagedFolderInformation
est une référence d'objet nul.
Pour plus de clarté, j'ai aussi tenté d'obtenir exactement la taille du dossier racine:
Console.Write(root.ManagedFolderInformation.FolderSize.ToString());
qui a lancé la même exception NRE, donc je sais que ce n'est pas seulement qu'une fois que vous arrivez à une certaine profondeur dans l'arborescence de répertoires que ManagedFolderInformation n'existe pas.
Des idées sur la façon d'obtenir la taille totale de la boîte aux lettres de l'utilisateur? Est-ce que j'aboie le mauvais arbre?
vous avez sauvé ma journée, mais votre byteformating isnt parfait, utilisez ceci: ' statique double ConvertBytesToMb (longs octets) { \t return (octets/1024f)/1024f; } ' – jwillmer