Solved

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

Posted on 2008-10-12
2
988 Views
Last Modified: 2008-10-12
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      = ... 
' ... 
 
  oCDlg.ShowOpen 
 
  doFileOpenDialog = oCDlg.Filename  ' FSpec 
 
End Sub

Open in new window

0
Comment
Question by:Christopher Schene
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 3

Accepted Solution

by:
DrunkenELF earned 250 total points
ID: 22698337
Dear Cschene,

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

Cheers,
D-ELF
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
Else
    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
Else
    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
    Else
        IsValue = True
    End If
    On Error GoTo 0
End Function
 
'*** End

Open in new window

0
 

Author Comment

by:Christopher Schene
ID: 22698569
thanks for the fast response....it works well!
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Background What I'm presenting in this article is the result of 2 conditions in my work area: We have a SQL Server production environment but no development or test environment; andWe have an MS Access front end using tables in SQL Server but we a…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.

734 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question