SharePoint, как вы программно определяете размер хранилища SPWeb?
Не самого семейства сайтов, а отдельных SPWeb.
2 ответа
Вы должны взглянуть на эту запись в блоге Александра Мейерса: размер SPWeb в зависимости от его папок и файлов
Он предоставляет умный способ определить размер SPWeb или SPFolder, просматривая его содержимое.
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;
}
Для тех, кто возвращается к этому вопросу, вот недостающий метод:
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;
}