;Function GetOLFolderSize()
;
;Authors: Mart
;
;Action:
; Gets the size of a first level outlook sub folder
;
;Syntax:
;Function GetOLFolderSize()
;
;Version:
; 1.0 February 26th 2013
; Initial post
;
;Parameters:
; parentfolder
; 3 = Deleted items
; 4 = Outbox
; 5 = Sent Items
; 6 = Inbox
; 9 = Calendar
; 10 = Contacts
; 11 = Journal
; 12 = Notes
; 13 = Tasks
;
; Target
; Any first level sub folder of the available parent folders
;
;Returns:
; Array containing folder name, number of items, folder size in KB
;
;Dependencies
; Outlook
; Developed and tested with Outlook 2010
;
;KiXtart:
; Developed on KiXtart 4.62
;
;Example(s):
; Break On
;
; $parentfolder = 6
; $subfolder = "My mail folder"
; $rc = GetOLFolderSize($parentfolder, $subfolder)
;
; ? $rc[0]
; ? $rc[1]
; ? $rc[2]
;
; Sleep 5
;
;Code:
Function GetOLFolderSize($parentfolder, $subfolder)
;Declare variables
Dim $MyArray[2], $objoutlook, $objnamespace, $folder
Dim $folders, $objsubfolder, $objfolder, $colitems
Dim $objitem, $intsize
;Create Outlook object
$objOutlook = CreateObject("Outlook.Application")
;Get Outlook namespace
$objNamespace = $objOutlook.GetNamespace("MAPI")
;Connect to parent folder
$folder = $objNamespace.GetDefaultFolder($parentfolder)
;Enumerate sub folders of parent folder
$folders = $folder.Folders
;Loop trought all folders
For Each $objfolder in $folders
;Get sub folder name
$objsubfolder = $folder.Folders($objfolder.Name)
If $objsubfolder = $subfolder
$myarray[0] = $objfolder.Name
$colitems = $objfolder.Items
$myarray[1] = $colitems.Count
For Each $objitem in $objfolder.Items
$intsize = CInt($intsize) + $objitem.Size
Next
$myarray[2] = CInt($intsize) /1024
EndIf
Next
$getolfoldersize = $myarray
EndFunction