在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 读取文件夹的文件是 VB 编程中的一种常见操作,下面将详细介绍两种实现方法。 方法一:使用 Shell 对象和 FileListBox 控件 在这个方法中,我们使用 Shell 对象和 FileListBox 控件来读取文件夹中的文件。首先...
VB 文件夹对比工具是一款基于Visual Basic (VB) 开发的应用程序,主要功能是对比两个文件夹中的内容,以便用户能够快速识别出它们之间的差异。这个工具特别强调了批处理和拖放操作,使得文件夹比较的过程更为便捷和...
在VB(Visual Basic)编程中,复制文件夹是一项常见的任务,尤其在开发系统备份、数据迁移或安装程序时。要实现这一功能,VB提供了多种方法,包括使用FileSystemObject(FSO)或者API函数。下面我们将深入探讨这两种...
在IT领域,自定义文件夹图标是一项常见的个性化设置任务,特别是在Windows操作系统中。VB,全称为Visual Basic,是Microsoft开发的一种编程语言,以其简单易学和强大的GUI(图形用户界面)设计能力而闻名。本话题将...
这可以通过两种方式实现: 1. 在"工程"菜单的"引用"对话框中选择"Microsoft Scripting Runtime",然后声明一个FileSystemObject类型的变量,例如: ```vb Dim fso As New FileSystemObject ``` 2. 动态创建FSO...
这两种方法都允许用户通过交互式对话框选择文件夹,并根据设定的文件类型筛选文件,将文件名或完整路径显示在列表框中。如果希望`BrowseForFolder`对话框为模态,只需将`Hwnd`参数设置为父窗口的句柄即可。 在实际...
在VB编程中,读取文件夹中的特定类型文件是一项常见的任务。本文将详细介绍两种方法来实现这一功能。 首先,我们来看第一种方法,即使用动态加载控件实现文件的读取。这种方法主要涉及`Shell`对象和`...
通过以上两种方式,你可以在VB程序中实现文件夹的选择与浏览功能。对于初学者来说,OpenFileDialog是一个快速简便的选择,而自定义的目录浏览界面则提供了更多定制的可能性。在实际开发中,应根据项目需求选择合适的...
文章中涉及的核心技术点包括:使用`SHBrowseForFolder`函数来打开浏览文件夹对话框、处理返回的PIDL(项目标识符列表)以及转换为实际路径。 #### 关键知识点解析 ##### 1. **定义浏览文件夹对话框的信息结构** ...
VB 6.0中的图标主要通过两种方式使用: 1. **资源文件**:VB 6.0支持直接在项目中添加资源文件(.res),这些文件可以包含图标、位图、对话框等图形元素。开发者可以通过`Project | Components | Add Resource`菜单...
文件夹浏览功能的实现可能依赖于OpenFileDialog对话框,这是一个内置的VB.NET控件,允许用户选择文件或文件夹。当用户选择一个文件夹后,程序可以遍历该文件夹下的所有图片文件,并将它们加载到图片浏览器的列表中供...
- `Private Declare Function SHBrowseForFolder Lib "shell32" _ (lpbi As BROWSEINFO) As Long`: 显示浏览文件夹对话框并获取结果。 - `Private Declare Function SHGetPathFromIDList Lib "shell32" _ (ByVal ...
数据保存部分,本系统采用了两种方式:`INI文件`和`RTF(Rich Text Format)`。`INI文件`是Windows操作系统早期使用的一种配置文件格式,简单易读,适合存储少量配置数据。在这个系统中,可能用于保存文件的元信息,如...
在传统的Windows编程领域,VB是一种广泛使用的编程语言,而将其应用到Android平台,则是将VB的语法和编程理念与Android的开发环境相结合,为那些熟悉VB的开发者提供了一种更熟悉的开发方式。 【描述】"使用VB环境...
在.NET框架中,FolderBrowserDialog和OpenFileDialog是两种常用的对话框组件,用于在Windows应用程序中实现用户交互。本文将详细探讨这两个组件的功能、用法及其在C#编程中的实际应用。 首先,`FolderBrowserDialog...
本文将详细介绍如何在Visual Basic(简称VB)和Delphi这两种流行的开发工具中实现这一功能。 #### VB中的立体化窗口显示实现 1. **安装DLL库**: - 在VB中实现立体化窗口显示,首先需要安装名为`CTL3dV2.dll`的...
在VB中解析XML文件,可以使用MSXML库(Microsoft XML Library),它提供了DOM(Document Object Model)和SAX(Simple API for XML)两种解析方式。在这个实例中,我们主要关注DOM方法,因为它允许开发者以面向对象...
- 事件处理:为Button1设置鼠标单击事件,通过FolderBrowserDialog控件打开文件夹选择对话框,获取用户选择的文件夹,并在PictureBox中显示第一张图片。为PictureBox设置鼠标点击事件,根据左键或右键改变图片的显示...
Form1可能是主程序界面,包含启动解压缩操作的按钮等元素,而frmProgress可能是一个进度对话框,用于在解压缩过程中显示进度信息。 6. **MakeDateLookNice.bas、MakeFilesSizesLookNice.bas**: 这两个模块文件可能...