如题,谢谢

解决方案 »

  1.   

    用这个API试试看:
    Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As LongPrivate 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
    Private Const BIF_STATUSTEXT = &H4&
    Private Const BIF_RETURNONLYFSDIRS = 1
    Private Const BIF_DONTGOBELOWDOMAIN = 2
    Private Const MAX_PATH = 260Public Function BrowseForFolder(owner As Form, Title As String, StartDir As String) As String
      'Opens a Treeview control that displays the directories in a computer  Dim lpIDList As Long
      Dim szTitle As String
      Dim sBuffer As String
      Dim tBrowseInfo As BrowseInfo
      m_CurrentDirectory = StartDir & vbNullChar  szTitle = Title
      With tBrowseInfo
        .hWndOwner = owner.hWnd
        .lpszTitle = lstrcat(szTitle, "")
        .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN + BIF_STATUSTEXT
        .lpfnCallback = GetAddressofFunction(AddressOf BrowseCallbackProc)  'get address of function.
      End With  lpIDList = SHBrowseForFolder(tBrowseInfo)
      If (lpIDList) Then
        sBuffer = Space(MAX_PATH)
        SHGetPathFromIDList lpIDList, sBuffer
        sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
        BrowseForFolder = sBuffer
      Else
        BrowseForFolder = ""
      End If
      
    End Function调用的话就这样:
    sIniDir = "C:\"  '默认目录
    sDir = BrowseForFolder(Me, "请选择目录", sIniDir)
      

  2.   

    Private Sub Command1_Click()
    CommonDialog1.ShowOpen
    Dim ab() As String
    Dim resultstr As String
    ab = Split(CommonDialog1.FileName, "\")
    Dim i As Integer
    resultstr = ""
    For i = 0 To UBound(ab) - 1
        resultstr = resultstr & ab(i) & "\"
    Next
    MsgBox resultstr
    End Sub