| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3770 人关注过本帖
标题:能同时选择一个或多个文件夹是个世界难题?
取消只看楼主 加入收藏
HVB6
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:331
专家分:561
注 册:2013-10-30
结帖率:98.41%
收藏
已结贴  问题点数:20 回复次数:6 
能同时选择一个或多个文件夹是个世界难题?
搜了一下网上,以下代码可以使用于VB6和VBA(2003),但是它只能选择一个文件夹,
能同时选择多个文件夹的则还没有查到,各位高手是否做一个,本人的确需要,谢谢。
Private Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Const BIF_RETURNONLYFSDIRS = &H1
Private pidl As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Private Sub command1_Click()
Dim bi As BROWSEINFO
Dim r As Long
Dim pidl As Long
Dim path As String
Dim pos As Integer
'句柄
'bi.hOwner = Me.Hwnd
'展开根目录
'bi.pidlRoot = 0&
'列表框标题
'bi.lpszTitle = "请选择软件安装路径:"
'规定只能选择文件夹,其他无效
bi.ulFlags = BIF_RETURNONLYFSDIRS
'调用API函数显示列表框
pidl = SHBrowseForFolder(bi)
'利用API函数获取返回的路径
path = Space$(512)
r = SHGetPathFromIDList(ByVal pidl&, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
Text1 = Left(path, pos - 1)
  MsgBox "您选择的文件夹:" & Text1
Else: Text1 = ""
End If
End Sub


搜索更多相关主题的帖子: 文件夹 网上 
2016-05-10 09:43
HVB6
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:331
专家分:561
注 册:2013-10-30
收藏
得分:0 
回复 2楼 风吹过b
如此做法,好像是不能像一楼的代码那样自主地选择文件夹的。
2016-05-10 11:18
HVB6
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:331
专家分:561
注 册:2013-10-30
收藏
得分:0 
回复 4楼 ZHRXJR
本人很菜,请帮忙做个附件如何?谢谢。
2016-05-10 12:18
HVB6
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:331
专家分:561
注 册:2013-10-30
收藏
得分:0 
回复 6楼 ZHRXJR
如图
图片附件: 游客没有浏览图片的权限,请 登录注册
2016-05-10 16:35
HVB6
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:331
专家分:561
注 册:2013-10-30
收藏
得分:0 
回复 6楼 ZHRXJR
1楼的要求就是选择4楼的图片的”d:\“以下一个或多个文件夹(同一级目录)。
2016-05-10 16:57
HVB6
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:331
专家分:561
注 册:2013-10-30
收藏
得分:0 
回复 9楼 风吹过b
谢谢版主。已按您的要求去做,没做好。附件没法上传,不知何因。
不要误解7楼和8楼的意思。7楼和8楼的说明是个例,
文件夹的展开应象1楼一样,即人工点击后,可展开下一级文件夹。


[此贴子已经被作者于2016-5-11 11:17编辑过]

2016-05-11 11:15
HVB6
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:331
专家分:561
注 册:2013-10-30
收藏
得分:0 
回复 11楼 ZHRXJR
谢谢。
不要误解7楼和8楼的意思。7楼和8楼的说明是个例,
文件夹的展开应象1楼一样,即人工点击后,可展开下一级文件夹,而且根目录应由使用者自主选择才是。

[此贴子已经被作者于2016-5-11 16:48编辑过]

2016-05-11 15:19
快速回复:能同时选择一个或多个文件夹是个世界难题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017715 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved