How do I browse to and choose a directory in VBscript using a File dialog?

I have the following code attached that will browse and choose a file in VBscript.

Instead of choosing a file, I want to choose a directory: How do  I do that?

Function  doFileOpenDialog() 
  Dim oCDlg 
  Dim sTmp 
  Set oCDlg = CreateObject( "MSComDlg.CommonDialog" ) 
  If oCDlg Is Nothing Then 
     MsgBox "CreateObject( 'MSComDlg.CommonDialog' ) failed." 
     Exit Sub 
  End If 
  oCDlg.MaxFileSize = 10000 
  oCDlg.DialogTitle = "Choose directory"
' Setting other oCDlg.Properties 
' oCDlg.Filter      = ... 
' ... 
  doFileOpenDialog = oCDlg.Filename  ' FSpec 
End Sub

Open in new window

Christopher ScheneSystem Engineer/Software EngineerAsked:
Who is Participating?
DrunkenELFConnect With a Mentor Commented:
Dear Cschene,

C he attached Code snippet using the shell dialog box to select a folder

Option Explicit
' Flags for the options parameter
Const BIF_returnonlyfsdirs   = &H0001
Const BIF_dontgobelowdomain  = &H0002
Const BIF_statustext         = &H0004
Const BIF_returnfsancestors  = &H0008
Const BIF_editbox            = &H0010
Const BIF_validate           = &H0020
Const BIF_browseforcomputer  = &H1000
Const BIF_browseforprinter   = &H2000
Const BIF_browseincludefiles = &H4000
Dim wsh, objDlg, objF
' Get Application object of the Windows shell.
Set objDlg = WScript.CreateObject("Shell.Application")
' Use the BrowseForFolder method.
' For instance: Set objF = objDlg.BrowseForFolder _
'     (&H0, "Select the folder to copy", &H10, "C:\Born")
Set objF = objDlg.BrowseForFolder (&H0, _
    "Select the folder to copy", _
    BIF_editbox + BIF_returnonlyfsdirs)
' Here we use the first method to detect the result.
If IsValue(objF) Then 
    MsgBox "Selected folder: " & objF.Title
    MsgBox "Canceled"
End If
' Here we use TypeName to detect the result.
If InStr(1, TypeName(objF), "Folder") > 0 Then
    MsgBox "Selected folder: " & objF.Title
    MsgBox "Canceled"
End If
Function IsValue(obj)
    ' Check whether the value has been returned.
    Dim tmp
    On Error Resume Next
    tmp = " " & obj
    If Err <> 0 Then
        IsValue = False
        IsValue = True
    End If
    On Error GoTo 0
End Function
'*** End

Open in new window

Christopher ScheneSystem Engineer/Software EngineerAuthor Commented:
thanks for the fast works well!
All Courses

From novice to tech pro — start learning today.