SharePoint, ¿cómo se determina programáticamente el tamaño de almacenamiento de un SPWeb?
(2)
Deberías echarle un vistazo a esta entrada de blog de Alexander Meijers: Tamaño de SPWeb basado en sus carpetas y archivos.
Proporciona una forma inteligente de encontrar el tamaño de un SPWeb o SPFolder al iterar a través de su contenido.
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;
}
No de la colección del sitio en sí, sino de los SPWeb individuales.
Para cualquiera que vuelva a esta pregunta, aquí está el método que falta:
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;
}