Private Sub Command1_Click() Dim objFS, objFolder, objSubFolder
Set objFS = CreateObject("Scripting.FileSystemObject") Set objFolder = objFS.GetFolder("C:\")
For Each objSubFolder In objFolder.SubFolders Debug.Print objSubFolder Next End Sub
Private Declare Function SHBrowseForFolder _ Lib "shell32.dll" Alias "SHBrowseForFolderA" ( _ lpBrowseInfo As BROWSEINFO) As LongPrivate Declare Function SHGetPathFromIDList _ Lib "shell32.dll" Alias "SHGetPathFromIDListA" ( _ ByVal pIdl As Long, _ ByVal pszPath As String) As LongPrivate Type BROWSEINFO hOwner As Long pidlRoot As Long pszDisplayName As String lpszTitle As String ulFlags As Long lpfn As Long lParam As Long iImage As Long End TypePrivate Sub Command1_Click() Dim BI As BROWSEINFO Dim lngIDList As Long Dim strPath As String * 255
BI.lpszTitle = "请选择一个文件夹" lngIDList = SHBrowseForFolder(BI) If lngIDList = 0 Then Exit Sub End If Call SHGetPathFromIDList(ByVal lngIDList, ByVal strPath) MsgBox Left(strPath, InStr(strPath, Chr(0)) - 1) End Sub
Dim objFS, objFolder, objSubFolder
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder("C:\")
For Each objSubFolder In objFolder.SubFolders
Debug.Print objSubFolder
Next
End Sub
Lib "shell32.dll" Alias "SHBrowseForFolderA" ( _
lpBrowseInfo As BROWSEINFO) As LongPrivate Declare Function SHGetPathFromIDList _
Lib "shell32.dll" Alias "SHGetPathFromIDListA" ( _
ByVal pIdl As Long, _
ByVal pszPath As String) As LongPrivate Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End TypePrivate Sub Command1_Click()
Dim BI As BROWSEINFO
Dim lngIDList As Long
Dim strPath As String * 255
BI.lpszTitle = "请选择一个文件夹"
lngIDList = SHBrowseForFolder(BI)
If lngIDList = 0 Then
Exit Sub
End If
Call SHGetPathFromIDList(ByVal lngIDList, ByVal strPath)
MsgBox Left(strPath, InStr(strPath, Chr(0)) - 1)
End Sub