maandag 20 augustus 2012

Calculate total size of SPWeb object

 

private static long GetWebSize(SPWeb web)
{
Log(
String.Format("===> Calculate the total subsite size of {0}.", web.Title));
long totalWebSize = 0;
try
{
foreach (SPFolder folder in web.Folders)
{
totalWebSize += GetFolderSize(folder);
}
foreach (SPWeb subweb in web.Webs)
{
totalWebSize += GetWebSize(subweb);
subweb.Dispose();
}
}
catch (Exception ex)
{
Log(
string.Format("===> ERROR while calculating the total web size. Error: {0}, StackTrace: {1}", ex.Message, ex.StackTrace));
}
Log(
string.Format("===> Total size of subsite {0} is: {1}", web.Title, totalWebSize.ToString()));
return totalWebSize;
}


private static long GetFolderSize(SPFolder folder)
{
long folderSize = 0;
try
{
foreach (SPFile file in folder.Files)
{
SPFileVersionCollection currentFileVersionColl = file.Versions;
foreach (SPFileVersion fileVersion in currentFileVersionColl)
{
folderSize += fileVersion.Size;
}
}
foreach (SPFolder subfolder in folder.SubFolders)
{
folderSize += GetFolderSize(subfolder);
}
}
catch (Exception ex)
{
Log(string.Format("===> ERROR while calculating the folder size. Error: {0}, StackTrace: {1}", ex.Message, ex.StackTrace));
}
return folderSize;
}

Geen opmerkingen:

Een reactie posten