文件夹与文件的选取

前提:再弄文件夹的选取的时候可以根据加载驱动器的方法,实现联动,但是不适用啊,还不美观。文件的选取那个普遍好百度出来,但是,需要适当修改。

 

言归正传:

     

文件夹的选择<1><2>两种方法哦!

<1>

添加模块

Public Const BIF_RETURNONLYFSDIRS = 1
Public Const BIF_DONTGOBELOWDOMAIN = 2
Public Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (LpBrowseInfo As BROWSEINFO) As Long
Public Declare Function SHGetPathFromIDlist Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Type BROWSEINFO

hwndOwner As Long

pidlroot As Long

pszDisplayName As String

lpszTitle As String

ulFlags As Long

lpfncallback As Long

lparam As Long

iImage As Long

End Type
Public Function GetFolder(ByVal hWnd As Long, Optional Title As String) As String
    Dim bi As BROWSEINFO
    Dim pidl As Long
    Dim folder As String
    folder = Space(255)

If IsNumeric(hWnd) Then
   bi.hwndOwner = hWnd
   bi.ulFlags = BIF_RETURNONLYFSDIRS
   bi.pidlroot = 0
   If Title <> "" Then
      bi.lpszTitle = Title & Chr$(0)
   Else
      bi.lpszTitle = "选择目录" & Chr$(0)
End If
   End If


    pidl = SHBrowseForFolder(bi)
    If SHGetPathFromIDlist(ByVal pidl, ByVal folder) Then
        GetFolder = Left(folder, InStr(folder, Chr$(0)) - 1)
    Else
        GetFolder = ""
    End If

End Function

在窗体上

Private Sub Command1_Click()
    Dim str
    str = GetFolder(Me.hWnd, "浏览文件夹")
    If str <> "" Then
        Text1.Text = str
       ' Combo1.AddItem (str)
    End If
End Sub
<2>

添加引用

Microsoft Shell Controls And Automation

'按钮的点击事件


Private Sub btnOk_Click()
Dim MyShell  As New Shell

Dim MyFolder As Folder
Set myforlder = MyShell.BrowseForFolder(0, "请选择文件:", 0)
If myforlder Is Nothing Then End
Text1.Text = myforlder.Self.Path

End Sub

 

文件的选取就简单了

添加一个CommonDialog控件

Private Sub btnLook_Click()
With CommonDialog
        .Filter = "所有文件夹"

       '对文件类型进行选取

        '.Filter="txt文件夹(txt)|txt"
        .ShowOpen
        Text1.Text = .FileName
 End With
 
End Sub

之后用到的路径就是CommonDialog.FileName了

 

后续:刚写博客,什么都没有,凑合着看吧,没贴在vb运行结果,但是都是自己运行好的复制下来的,恩恩,情况基本是这样。

        大菜鸟一个,有错误还望及时指正,以免误人子弟。

posted @ 2015-07-01 14:32  圣诞节到了  阅读(351)  评论(0编辑  收藏  举报