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 Sub
Para 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