SETAR PASTA
                    Boa tarde.
Estou tentando fazer um formulário onde o usuário irá definir um diretório.
Por exemplo: O programa necessita que o usuário mostre o diretório onde se encontram os arquivos que o programa irá utilizar (por exemplo, arquivos .txt). AÃ ele clica em um botão (command button) para selecionar o diretório. Como se faz isso?
Eu já uso o CommonDialog, mas só sei usar para definir onde está um arquivo. E o meu objetivo é definir um diretório todo. Depois, este diretório selecionado deveria aparecer em uma textbox.
Dá pra fazer com o CommonDialog?
[ ]'s
            Estou tentando fazer um formulário onde o usuário irá definir um diretório.
Por exemplo: O programa necessita que o usuário mostre o diretório onde se encontram os arquivos que o programa irá utilizar (por exemplo, arquivos .txt). AÃ ele clica em um botão (command button) para selecionar o diretório. Como se faz isso?
Eu já uso o CommonDialog, mas só sei usar para definir onde está um arquivo. E o meu objetivo é definir um diretório todo. Depois, este diretório selecionado deveria aparecer em uma textbox.
Dá pra fazer com o CommonDialog?
[ ]'s
                    Setando o local da pasta escolhida sem CommonDialog
  
Primeiro crie um MODULO
Segundo Coloque no clique do botao
Para você saber o diretório escolhido.
                
            Primeiro crie um MODULO
Public Type BrowseInfo
    hWndOwner As Long
    pIDLRoot As Long
    pszDisplayName As Long
    lpszTitle As Long
    ulFlags As Long
    lpfnCallback As Long
    lParam As Long
    iImage As Long
End Type
Public Const BIF_RETURNONLYFSDIRS = 1
Public Const MAX_PATH = 260
Public Declare Sub CoTaskMemFree Lib [Ô]ole32.dll[Ô] (ByVal hMem As Long)
Public Declare Function lstrcat Lib [Ô]kernel32[Ô] Alias [Ô]lstrcatA[Ô] (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Public Declare Function SHBrowseForFolder Lib [Ô]shell32[Ô] (lpbi As BrowseInfo) As Long
Public Declare Function SHGetPathFromIDList Lib [Ô]shell32[Ô] (ByVal pidList As Long, ByVal lpBuffer As String) As Long
  
Segundo Coloque no clique do botao
  Private Sub Command1_Click()
    Dim iNull As Integer, lpIDList As Long, lResult As Long
    Dim sPath As String, udtBI As BrowseInfo
   [ô]Variavel que recebe o local da pasta escolhida
    Dim PastaEsclhida As String
    With udtBI
        .hWndOwner = Me.hWnd
        .lpszTitle = lstrcat([Ô]C:\[Ô], [Ô][Ô])
        .ulFlags = BIF_RETURNONLYFSDIRS
    End With
    lpIDList = SHBrowseForFolder(udtBI)
    If lpIDList Then
        sPath = String$(MAX_PATH, 0)
        SHGetPathFromIDList lpIDList, sPath
        CoTaskMemFree lpIDList
        iNull = InStr(sPath, vbNullChar)
        If iNull Then
            sPath = Left$(sPath, iNull - 1)
        End If
    End If
    PastaEsclhida = sPath
End SubPara você saber o diretório escolhido.
[ô]Isso dentro do evento Clicar do botão
txtDiretorio.text= sPath
                    apenas idéia:
experimenta setar o caminho desejado num DirListBox e passa pro Common..
            experimenta setar o caminho desejado num DirListBox e passa pro Common..
                    Insira um DisListBox e use o comando pra capturar o caminho
            Text1.text = (Dir1.Path)
                
                        Tópico encerrado , respostas não são mais permitidas