| Usuario |
¿Como seleccionar un directorio? |
Desconocido
|
| Enviado - 29/5/2003 |
| |
Hola a tod@s
Estoy realizando una práctica en la que necesito pedir al usuario un directorio para dejar en él algunos ficheros. Para ello cogí la ventana de dialogo OpenFileDialog, pero no consigo que se seleccionen directorios (si lo selecciono y pincho en aceptar abre el directorio, no lo coje). Por ello me gustaría saber si hay alguna opción en este tipo de dialogos que sirva para indicar que lo que se quiere es abrir un directorio en lugar de un fichero o, en caso negativo, si existe alguna clase similar a OpenFileDialog (lo que sería un OpenFileDirectory).
Gracias y un saludo
|
| |
|
Daniel_Panama
5 Mensaje(s)
|
| Enviado - 29/5/2003 |
| |
Option Explicit
Dim var_locate_server As String
Private Type BrowseInfo
hWndOwner As Long
pidlRoot As Long
sDisplayName As String
sTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Private Declare Function SHBrowseForFolder Lib "Shell32.dll" (bBrowse As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "Shell32.dll" (ByVal lItem As Long, ByVal sDir As String) As Long
' Let the user browse for a directory. Return the
' selected directory. Return an empty string if
' the user cancels.
Private Function BrowseForDirectory() As String
Dim browse_info As BrowseInfo
Dim item As Long
Dim dir_name As String
browse_info.hWndOwner = hwnd
browse_info.pidlRoot = 0
browse_info.sDisplayName = Space$(260)
browse_info.sTitle = "Select Directory"
browse_info.ulFlags = 1 ' Return directory name.
browse_info.lpfn = 0
browse_info.lParam = 0
browse_info.iImage = 0
item = SHBrowseForFolder(browse_info)
If item Then
dir_name = Space$(260)
If SHGetPathFromIDList(item, dir_name) Then
BrowseForDirectory = Left(dir_name, InStr(dir_name, Chr$(0)) - 1)
Else
BrowseForDirectory = ""
End If
End If
var_locate_server = dir_name
End Function
Private Sub cmdExaminar_Click()
MsgBox BrowseForDirectory
End Sub
Private Sub Form_Load()
var_locate_server = ""
End Sub
Private Sub Gravar_Click()
DataEnvironment1.rslocate_server.Open
DataEnvironment1.rslocate_server!direccion = var_locate_server
DataEnvironment1.rslocate_server.Update
DataEnvironment1.rslocate_server.Close
End Sub
Private Sub Volver_Click()
Unload Me
End Sub
Este codigo es tu Respuesta. Suerte... |
| |
|
|
|