2008-10-14 8 views

Répondre

7

Vous devriez jeter un oeil à cette entrée de blog par Alexander Meijers: Size of SPWeb based on its Folders and Files

Il fournit un moyen intelligent de trouver la taille d'un SPWeb ou SPFolder par itérer son contenu.

private long GetWebSize(SPWeb web) 
{ 
    long total = 0; 

    foreach (SPFolder folder in web.Folders) 
    { 
     total += GetFolderSize(folder); 
    } 

    foreach (SPWeb subweb in web.Webs) 
    { 
     total += GetWebSize(subweb); 
     subweb.Dispose(); 
    } 

    return total; 
} 
+0

L'article n'existe plus et le code manque GetFolderSize. Il y a une discussion avec ce code ici: http://social.msdn.microsoft.com/forums/en-us/sharepointdevelopment/thread/0d066e9b-f6b9-49bc-b741-fcf7abdc854b –

+0

Ah c'est bon à savoir. Merci! –

0

Pour toute personne qui revient à cette question, voici la méthode manquante:

private long GetFolderSize(SPFolder folder) 
{ 
    long folderSize = 0; 

    foreach (SPFile file in folder.Files) 
    { 
     folderSize += file.Length; 
    } 

    foreach (SPFolder subfolder in folder.SubFolders) 
    { 
     folderSize += GetFolderSize(subfolder); 
    } 

    return folderSize; 
}