Outlook Banter

Outlook Banter (http://www.outlookbanter.com/)
-   Outlook and VBA (http://www.outlookbanter.com/outlook-vba/)
-   -   How to get folder size of a pst (http://www.outlookbanter.com/outlook-vba/69767-how-get-folder-size-pst.html)

Lars April 4th 08 11:17 AM

How to get folder size of a pst
 
Hello,

I need to have the folder size of a personal folder (pst)

I've already implemented a simple (but slow) solution, may there is a better
function already included in the outlook objects ?
How does it works on "properties" - "folder size" ? It seams to be faster.


Public Sub FolderCleanUp()

Dim FolderSize As Long

Dim myOlApp As Outlook.Application 'Outlook-Application
Dim myNameSpace As Outlook.NameSpace
Dim myFolder As Outlook.MAPIFolder

Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")


'Scan all folders
For Each myFolder In myNameSpace.Folders

'Determine Size of all elements in this folder incl. sub-folders
FolderSize = DetermineSize(myFolder)

Debug.Print (myFolder.Name & vbCrLf & _
" " & ShowSize(FolderSize))

NextFor:
Next myFolder

End Sub


' Rekursive Funktion zur Bestimmung der Größe aller Objekte in einem Ordner
(inkl. Unterordner)
Private Function DetermineSize(objFolder As MAPIFolder) As Long

Dim i As Long
DetermineSize = 0

'Die Größe der Objekte im Ordner addieren (Items)
For i = 1 To objFolder.Items.Count
DetermineSize = DetermineSize + objFolder.Items.Item(i).Size
Next i

'Die Unterordner nun auch noch durchsuchen (Folder)
For i = 1 To objFolder.Folders.Count
DetermineSize = DetermineSize + DetermineSize(objFolder.Folders.Item(i))
Next i

End Function

Ken Slovak - [MVP - Outlook] April 4th 08 03:04 PM

How to get folder size of a pst
 
That's about it. You can probably add about 10% to your calculations for
hidden items, overhead data, etc.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm


"Lars" wrote in message
...
Hello,

I need to have the folder size of a personal folder (pst)

I've already implemented a simple (but slow) solution, may there is a
better
function already included in the outlook objects ?
How does it works on "properties" - "folder size" ? It seams to be
faster.


Public Sub FolderCleanUp()

Dim FolderSize As Long

Dim myOlApp As Outlook.Application 'Outlook-Application
Dim myNameSpace As Outlook.NameSpace
Dim myFolder As Outlook.MAPIFolder

Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")


'Scan all folders
For Each myFolder In myNameSpace.Folders

'Determine Size of all elements in this folder incl. sub-folders
FolderSize = DetermineSize(myFolder)

Debug.Print (myFolder.Name & vbCrLf & _
" " & ShowSize(FolderSize))

NextFor:
Next myFolder

End Sub


' Rekursive Funktion zur Bestimmung der Größe aller Objekte in einem
Ordner
(inkl. Unterordner)
Private Function DetermineSize(objFolder As MAPIFolder) As Long

Dim i As Long
DetermineSize = 0

'Die Größe der Objekte im Ordner addieren (Items)
For i = 1 To objFolder.Items.Count
DetermineSize = DetermineSize + objFolder.Items.Item(i).Size
Next i

'Die Unterordner nun auch noch durchsuchen (Folder)
For i = 1 To objFolder.Folders.Count
DetermineSize = DetermineSize +
DetermineSize(objFolder.Folders.Item(i))
Next i

End Function




All times are GMT +1. The time now is 08:39 PM.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2006 OutlookBanter.com