请问:如何得到一个文件夹的路径。
类似于在IE里保存网页弹出来的窗口。然后选择一个文件夹,点确认后返回文件夹的路径。

解决方案 »

  1.   

    用microsoft common dialog control 6.0(SP6)控件’显示保存对话框
     Me.CommonDialog1.ShowSave
    获得文件的位置
     me.Caption=me.CommonDialog1.FileName
      

  2.   

    An Example:Option Explicit
     
    Private Const BIF_RETURNONLYFSDIRS As Long = &H1
    Private Const BIF_DONTGOBELOWDOMAIN As Long = &H2
    Private Const BIF_RETURNFSANCESTORS As Long = &H8
    Private Const BIF_BROWSEFORCOMPUTER As Long = &H1000
    Private Const BIF_BROWSEFORPRINTER As Long = &H2000
    Private Const BIF_BROWSEINCLUDEFILES As Long = &H4000
    Private Const MAX_PATH As Long = 260
     
    Private Type BrowseInfo
        hOwner As Long
        pidlRoot As Long
        pszDisplayName As String
        lpszINSTRUCTIONS As String
        ulFlags As Long
        lpfn As Long
        lParam As Long
        iImage As Long
    End Type
     
    Private Type SHFILEOPSTRUCT
        hwnd As Long
        wFunc As Long
        pFrom As String
        pTo As String
        fFlags As Integer
        fAnyOperationsAborted As Boolean
        hNameMappings As Long
        lpszProgressTitle As String
    End Type
     
    Private Declare Function SHGetPathFromIDListA Lib "shell32.dll" (ByVal pidl As Long, ByVal pszBuffer As String) As Long
    Private Declare Function SHBrowseForFolderA Lib "shell32.dll" (lpBrowseInfo As BrowseInfo) As Long
    Function BrowseFolder(Optional Caption As String = "") As String
         
        Dim BrowseInfo As BrowseInfo
        Dim FolderName As String
        Dim ID As Long
        Dim Res As Long
         
        With BrowseInfo
            .hOwner = 0
            .pidlRoot = 0
            .pszDisplayName = String$(MAX_PATH, vbNullChar)
            .lpszINSTRUCTIONS = Caption
            .ulFlags = BIF_RETURNONLYFSDIRS
            .lpfn = 0
        End With
        FolderName = String$(MAX_PATH, vbNullChar)
        ID = SHBrowseForFolderA(BrowseInfo)
        If ID Then
            Res = SHGetPathFromIDListA(ID, FolderName)
            If Res Then
                BrowseFolder = Left$(FolderName, InStr(FolderName, _
                vbNullChar) - 1)
            End If
        End If
    End Function
     Private Sub Command1_Click()
        Dim folderpath    As String
        folderpath = BrowseFolder("请选择文件夹路径")
       If folderpath > "" Then
       MsgBox "您选中了文件夹:" & vbNewLine & folderpath, vbInformation, "提示"
       Else
      MsgBox "您未选中任何文件夹!", vbInformation, "提示"
      Exit Sub
      End If
    End Sub