Hi Phil,
Here is one way you can do it, but it's not a recursive directory size:
Private Function DirectorySize(ByVal sDir As String) As Long
Dim d As New IO.DirectoryInfo(sDir)
Dim fils As IO.FileInfo() = d.GetFiles()
Dim f As IO.FileInfo
Dim i As Integer
For Each f In fils
i += f.Length
Next
Return i
End Function
Usage:
--------
' Directory to check for size
Dim strDir As String =
Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
' Variable to convert direct size into bytes
Dim intBytes As Int32 = DirectorySize(strDir)
' Variable to convert direct size into kilobytes
Dim intKiloBytes As Int32 = (DirectorySize(strDir) \ 1024)
' Variable to convert direct size into megabytes
Dim intMegaBytes As Int32 = (DirectorySize(strDir) \ 1048576)
' Variable to convert direct size into gigabytes
Dim intGigaBytes As Int32 = (DirectorySize(strDir \ 1073741824))
' Show results in bytes
MessageBox.Show(String.Format("The directory size is {0:d2} bytes",
intBytes))
' Show results in kilobytes
MessageBox.Show(String.Format("The directory size is {0} KB",
intKiloBytes))
' Show results in megabytes
MessageBox.Show(String.Format("The directory size is {0} MB",
intMegaBytes))
' Show results in gigabytes
MessageBox.Show(String.Format("The directory size is {0} Gb",
intGigaBytes))
I hope this helps
|