VBScript BrowseForFolder Method
last modified April 9, 2025
The BrowseForFolder
method in VBScript is part of the
Shell.Application
object. It displays a dialog box that allows users
to select a folder. This method is commonly used in scripts requiring user input
for folder selection. It provides a familiar interface consistent with Windows
Explorer.
BrowseForFolder
offers customization options for the dialog title
and behavior. It returns a Folder
object representing the selected
directory. This tutorial covers BrowseForFolder
with practical
examples to demonstrate its usage.
BrowseForFolder Method Overview
The BrowseForFolder
method takes several parameters: window handle,
title, options, and root folder. It displays a modal dialog for folder
selection. The method returns a Folder
object or nothing if
canceled.
Key features include customizable dialog text and root folder specification. It can show files or restrict to folders only. Understanding this method helps create interactive scripts requiring folder input. The dialog appearance matches the Windows version it runs on.
Basic Folder Selection
This example demonstrates the simplest use of BrowseForFolder
to
select a folder. It shows the default dialog with minimal parameters. The script
displays the selected folder path or a message if canceled.
Set shell = CreateObject("Shell.Application") Set folder = shell.BrowseForFolder(0, "Select a folder", 0) If Not folder Is Nothing Then WScript.Echo "Selected folder: " & folder.Self.Path Else WScript.Echo "No folder selected" End If Set folder = Nothing Set shell = Nothing
The script creates a Shell.Application
object and calls
BrowseForFolder
. The first parameter (0) specifies no parent
window. The second parameter sets the dialog title. The third parameter (0)
uses default options.
Custom Dialog Title and Options
This example shows customizing the dialog title and behavior options. The title provides user instructions. Options control dialog behavior like showing files or edit box. Different combinations serve various use cases.
Set shell = CreateObject("Shell.Application") ' 1 = Show both files and folders ' 512 = Show an edit box for path entry options = 1 + 512 Set folder = shell.BrowseForFolder(0, "Please select a destination folder:", options) If Not folder Is Nothing Then WScript.Echo "You selected: " & folder.Self.Path Else WScript.Echo "Operation canceled" End If Set folder = Nothing Set shell = Nothing
The script combines options 1 (show files) and 512 (edit box) for flexible selection. The custom title guides the user. The options parameter accepts bitwise combinations of available flags. This creates a more versatile folder picker.
Setting Root Folder
This example demonstrates restricting the starting folder for the dialog. The root folder parameter limits where browsing begins. It helps guide users to appropriate locations. The script uses a known folder ID for Documents.
Set shell = CreateObject("Shell.Application") ' &H5 = CSIDL_PERSONAL (My Documents) rootFolder = &H5 Set folder = shell.BrowseForFolder(0, "Select a folder in Documents:", 0, rootFolder) If Not folder Is Nothing Then WScript.Echo "Selected: " & folder.Self.Path Else WScript.Echo "No selection made" End If Set folder = Nothing Set shell = Nothing
The script starts browsing from the Documents folder using CSIDL_PERSONAL (0x5). This focuses user selection within a specific directory tree. Known folder IDs provide consistent starting points across systems. The dialog opens directly at the specified location.
Creating New Folders
This example enables folder creation within the dialog. The option combination allows users to make new folders during selection. This is useful for scripts that need to create output directories. The dialog handles the creation UI.
Set shell = CreateObject("Shell.Application") ' 8 = BIF_NEWDIALOGSTYLE (enables New Folder button) ' 64 = BIF_EDITBOX options = 8 + 64 Set folder = shell.BrowseForFolder(0, "Select or create output folder:", options) If Not folder Is Nothing Then WScript.Echo "Output will go to: " & folder.Self.Path Else WScript.Echo "No folder specified" End If Set folder = Nothing Set shell = Nothing
The script combines options 8 (new folder button) and 64 (edit box). Users can create folders or type paths directly. The dialog maintains standard Windows folder creation behavior. This provides maximum flexibility for output location selection.
Advanced Options Combination
This example shows a complex combination of dialog options. It demonstrates multiple features working together. The script creates a versatile folder picker with several advanced features enabled. This serves specialized use cases.
Set shell = CreateObject("Shell.Application") ' 1 = Show files ' 4 = Show text labels ' 8 = New folder button ' 16 = Show shared folders differently ' 64 = Edit box options = 1 + 4 + 8 + 16 + 64 Set folder = shell.BrowseForFolder(0, "Advanced folder selection:", options, &H5) If Not folder Is Nothing Then WScript.Echo "Final selection: " & folder.Self.Path Else WScript.Echo "Selection canceled" End If Set folder = Nothing Set shell = Nothing
The script combines five options for maximum dialog functionality. It starts in Documents folder and shows files with labels. Shared folders appear distinct, and users can create folders. The edit box allows direct path entry. This creates a comprehensive selection interface.
Source
Shell.BrowseForFolder Documentation
In this article, we have explored the BrowseForFolder
method in
VBScript, covering its usage and practical applications. From basic folder
selection to advanced dialog customization, these examples demonstrate flexible
user interaction. With this knowledge, you can enhance your scripts with
professional folder selection dialogs.
Author
List all VBScript tutorials.