VBScript Size Property
last modified April 9, 2025
The Size property in VBScript is part of the
FileSystemObject object model. It returns the size of a file or
folder in bytes. For files, it gives the exact byte count. For folders, it
recursively calculates the total size of all contained files.
Size is commonly used for disk space management and file analysis.
It helps in monitoring storage usage and implementing size-based file operations.
This tutorial covers Size with practical examples to demonstrate
its usage.
Size Property Overview
The Size property is available for both File and
Folder objects. It returns a numeric value representing bytes. For
folders, the calculation includes all subfolders and files. The property is
read-only and requires proper object initialization.
Key features include accurate byte counting and recursive folder sizing. It
doesn't account for filesystem overhead or allocation units. Size
works with all file types and folder structures. Understanding this property
helps create robust file management scripts.
Getting File Size
This example demonstrates the basic use of Size to get a file's
size. It shows how to access a file object and retrieve its size in bytes. The
result is displayed in a message box.
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.GetFile("C:\temp\example.txt")
fileSize = file.Size
WScript.Echo "File size: " & fileSize & " bytes"
Set file = Nothing
Set fso = Nothing
The script creates a FileSystemObject and gets a reference to a
file. The Size property returns the file's size in bytes. The
result is displayed using WScript.Echo. Always clean up objects
when done.
Converting Bytes to KB and MB
This example shows how to convert the raw byte count to more readable units. It demonstrates dividing the size by 1024 for KB and by 1024 squared for MB. The converted values are formatted for better readability.
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.GetFile("C:\temp\largefile.dat")
bytes = file.Size
kb = bytes / 1024
mb = kb / 1024
WScript.Echo "Size: " & Round(mb, 2) & " MB (" & bytes & " bytes)"
Set file = Nothing
Set fso = Nothing
The script gets the file size and performs unit conversions. The Round
function formats the MB value to two decimal places. This approach makes file
sizes more understandable for users. The original byte count is also displayed.
Getting Folder Size
This example demonstrates using Size with folders. It shows how the
property recursively calculates total size of all files in a folder structure.
The result includes all subfolders and their contents.
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\temp\projects")
folderSize = folder.Size
WScript.Echo "Folder size: " & folderSize & " bytes"
Set folder = Nothing
Set fso = Nothing
The script gets a folder reference and accesses its Size property.
The calculation may take time for large folder structures. The result represents
the sum of all files' sizes within the folder hierarchy. Empty folders contribute
zero bytes to the total.
Checking Disk Space Usage
This example combines Size with drive information to check disk
space usage. It calculates the percentage of used space on a drive. The script
demonstrates practical storage monitoring.
Set fso = CreateObject("Scripting.FileSystemObject")
Set drive = fso.GetDrive("C:")
totalSpace = drive.TotalSize
freeSpace = drive.FreeSpace
usedSpace = totalSpace - freeSpace
usagePercent = (usedSpace / totalSpace) * 100
WScript.Echo "Disk usage: " & Round(usagePercent, 2) & "%"
Set drive = Nothing
Set fso = Nothing
The script calculates disk usage percentage using drive properties. The
Size concept relates to the space calculations. The result shows
how much of the drive's capacity is in use. This technique is useful for system
monitoring scripts.
Finding Large Files
This example searches a folder for files larger than a specified size. It
demonstrates using Size in file filtering operations. The script
lists all files exceeding the size threshold.
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\temp")
threshold = 10 * 1024 * 1024 ' 10 MB
For Each file In folder.Files
If file.Size > threshold Then
WScript.Echo file.Name & ": " & file.Size & " bytes"
End If
Next
Set folder = Nothing
Set fso = Nothing
The script checks each file's Size against a 10 MB threshold. Files
exceeding the limit are listed with their sizes. This approach helps identify
space-consuming files. The threshold can be adjusted as needed.
Source
FileSystemObject Documentation
In this article, we have explored the Size property in VBScript,
covering its usage and practical applications. From basic file sizing to disk
space analysis, these examples demonstrate valuable file management techniques.
With this knowledge, you can enhance your scripts with robust size-related
operations.
Author
List all VBScript tutorials.