`
qzriso
  • 浏览: 242973 次
  • 性别: Icon_minigender_1
  • 来自: ph
社区版块
存档分类
最新评论

在VB中两种方式显示文件夹浏览对话框

    博客分类:
  • vb
阅读更多
在VB中想显示文件夹浏览对话框来选择文件夹好像很不容易,今天在网上搜索了一下,大部分都是VC的代码,比较复杂.有VB的也是调了很多API,让人很受不了.后来在VB引用对象中找来找去,终于找到一个很强大的对象Shell.要用它应先引用Microsoft Shell Controls And Automation对象.测试程序如下(其中文件夹浏览一用的是API,二用的是Shell对象):

Private Const BIF_RETURNONLYFSDIRS = 1                                        '从这里开始为API声明                  
Private Const BIF_DONTGOBELOWDOMAIN = 2
Private Const MAX_PATH = 260

Private Declare Function SHBrowseForFolder Lib "Shell32" _
      (lpbi As BrowseInfo) As Long

Private Declare Function SHGetPathFromIDList Lib "Shell32" _
      (ByVal pidList As Long, _
      ByVal lpBuffer As String) As Long

Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" _
      (ByVal lpString1 As String, ByVal _
      lpString2 As String) As Long

Private 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

Dim a As New Shell                                                                                 'Shell对象

Private Sub Command1_Click()                                                              '文件夹浏览一
     Dim lpIDList As Long
     Dim sBuffer As String
     Dim szTitle As String
     Dim tBrowseInfo As BrowseInfo

     szTitle = "This is the title"
     With tBrowseInfo
          .hWndOwner = Me.hWnd
          .lpszTitle = lstrcat(szTitle, "")
          .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
     End With

     lpIDList = SHBrowseForFolder(tBrowseInfo)

     If (lpIDList) Then
          sBuffer = Space(MAX_PATH)
          SHGetPathFromIDList lpIDList, sBuffer
          sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
          MsgBox sBuffer
     End If
    
End Sub

Private Sub Command2_Click()                                                             '文件夹浏览二
Dim b As Folder
Set b = a.BrowseForFolder(0, "选择文件夹", 0)
a.Open b
End Sub

分享到:
评论

相关推荐

    vb读取文件夹的文件.pdf

    VB 读取文件夹的文件是 VB 编程中的一种常见操作,下面将详细介绍两种实现方法。 方法一:使用 Shell 对象和 FileListBox 控件 在这个方法中,我们使用 Shell 对象和 FileListBox 控件来读取文件夹中的文件。首先...

    VB 文件夹对比工具,批放拖放功能(源码)

    VB 文件夹对比工具是一款基于Visual Basic (VB) 开发的应用程序,主要功能是对比两个文件夹中的内容,以便用户能够快速识别出它们之间的差异。这个工具特别强调了批处理和拖放操作,使得文件夹比较的过程更为便捷和...

    VB 复制文件夹

    在VB(Visual Basic)编程中,复制文件夹是一项常见的任务,尤其在开发系统备份、数据迁移或安装程序时。要实现这一功能,VB提供了多种方法,包括使用FileSystemObject(FSO)或者API函数。下面我们将深入探讨这两种...

    自定义文件夹图标(VB源代码)

    在IT领域,自定义文件夹图标是一项常见的个性化设置任务,特别是在Windows操作系统中。VB,全称为Visual Basic,是Microsoft开发的一种编程语言,以其简单易学和强大的GUI(图形用户界面)设计能力而闻名。本话题将...

    VB中利用FSO对象对文件夹操作[文].pdf

    这可以通过两种方式实现: 1. 在"工程"菜单的"引用"对话框中选择"Microsoft Scripting Runtime",然后声明一个FileSystemObject类型的变量,例如: ```vb Dim fso As New FileSystemObject ``` 2. 动态创建FSO...

    vb读取文件夹的文件[收集].pdf

    这两种方法都允许用户通过交互式对话框选择文件夹,并根据设定的文件类型筛选文件,将文件名或完整路径显示在列表框中。如果希望`BrowseForFolder`对话框为模态,只需将`Hwnd`参数设置为父窗口的句柄即可。 在实际...

    vb读取文件夹的文件[定义].pdf

    在VB编程中,读取文件夹中的特定类型文件是一项常见的任务。本文将详细介绍两种方法来实现这一功能。 首先,我们来看第一种方法,即使用动态加载控件实现文件的读取。这种方法主要涉及`Shell`对象和`...

    目录选择与浏览程序(vb编程)

    通过以上两种方式,你可以在VB程序中实现文件夹的选择与浏览功能。对于初学者来说,OpenFileDialog是一个快速简便的选择,而自定义的目录浏览界面则提供了更多定制的可能性。在实际开发中,应根据项目需求选择合适的...

    精彩编程与编程技巧-使用 WIN95 的选择目录对话框...

    文章中涉及的核心技术点包括:使用`SHBrowseForFolder`函数来打开浏览文件夹对话框、处理返回的PIDL(项目标识符列表)以及转换为实际路径。 #### 关键知识点解析 ##### 1. **定义浏览文件夹对话框的信息结构** ...

    vb 6.0 系统自带icon

    VB 6.0中的图标主要通过两种方式使用: 1. **资源文件**:VB 6.0支持直接在项目中添加资源文件(.res),这些文件可以包含图标、位图、对话框等图形元素。开发者可以通过`Project | Components | Add Resource`菜单...

    VB.NET 简单图片浏览器

    文件夹浏览功能的实现可能依赖于OpenFileDialog对话框,这是一个内置的VB.NET控件,允许用户选择文件或文件夹。当用户选择一个文件夹后,程序可以遍历该文件夹下的所有图片文件,并将它们加载到图片浏览器的列表中供...

    使用 WIN95 的选择目录对话框

    - `Private Declare Function SHBrowseForFolder Lib "shell32" _ (lpbi As BROWSEINFO) As Long`: 显示浏览文件夹对话框并获取结果。 - `Private Declare Function SHGetPathFromIDList Lib "shell32" _ (ByVal ...

    vb 资料管理

    数据保存部分,本系统采用了两种方式:`INI文件`和`RTF(Rich Text Format)`。`INI文件`是Windows操作系统早期使用的一种配置文件格式,简单易读,适合存储少量配置数据。在这个系统中,可能用于保存文件的元信息,如...

    vb for android VB 环境写安卓

    在传统的Windows编程领域,VB是一种广泛使用的编程语言,而将其应用到Android平台,则是将VB的语法和编程理念与Android的开发环境相结合,为那些熟悉VB的开发者提供了一种更熟悉的开发方式。 【描述】"使用VB环境...

    FolderBrowserDialog和OpenFileDialog组件选择文件或选择文件夹.rar

    在.NET框架中,FolderBrowserDialog和OpenFileDialog是两种常用的对话框组件,用于在Windows应用程序中实现用户交互。本文将详细探讨这两个组件的功能、用法及其在C#编程中的实际应用。 首先,`FolderBrowserDialog...

    精彩编程与编程技巧-如何在VB和Delphi中快速实现立体化窗口显示...

    本文将详细介绍如何在Visual Basic(简称VB)和Delphi这两种流行的开发工具中实现这一功能。 #### VB中的立体化窗口显示实现 1. **安装DLL库**: - 在VB中实现立体化窗口显示,首先需要安装名为`CTL3dV2.dll`的...

    vb_ XML解析实例 .zip_WH_CBT_vb xml_vb 解析xml文件_visual basic_解析

    在VB中解析XML文件,可以使用MSXML库(Microsoft XML Library),它提供了DOM(Document Object Model)和SAX(Simple API for XML)两种解析方式。在这个实例中,我们主要关注DOM方法,因为它允许开发者以面向对象...

    VB.NET图片浏览器,MP3播放器源代码及实验报告

    - 事件处理:为Button1设置鼠标单击事件,通过FolderBrowserDialog控件打开文件夹选择对话框,获取用户选择的文件夹,并在PictureBox中显示第一张图片。为PictureBox设置鼠标点击事件,根据左键或右键改变图片的显示...

    VB解压缩RAR文档[vbDeRar.rar]-精品源代码

    Form1可能是主程序界面,包含启动解压缩操作的按钮等元素,而frmProgress可能是一个进度对话框,用于在解压缩过程中显示进度信息。 6. **MakeDateLookNice.bas、MakeFilesSizesLookNice.bas**: 这两个模块文件可能...

Global site tag (gtag.js) - Google Analytics