vb 关于commondialog的多选
关于commondialog的多选(如何提取文件名?)
第一种方法==================================================
Function OpenFile(strFileInfor As String, strFileType As String, blnIsMulti As Boolean, OpenFileDialog As Control) As String()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'OpenFileDialog 通用对话框
'strstrfileInfor 文件提示
'strstrfileType 文件类型,扩展名
'blnblnismulti 是否为多选
'返回为文件名数组,OpenFile(0)存放文件路径,从1开始存放文件名,包括只有一个文件时的情况。
'返回的路径中已经包含了最后的"\"
'如果没有选择任何文件,OpenFileFuction(0)返回为""
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'设置打开文件对话框过滤器
OpenFileDialog.Filter = strFileInfor & "|" & strFileType
'设定是否可以多选
If blnIsMulti Then
OpenFileDialog.Flags = &H80200
OpenFileDialog.MaxFileSize = 1024 '设置使用CommonDialog控件被打开的文件名的最大尺寸
Else
OpenFileDialog.Flags = 0
End If
OpenFileDialog.ShowOpen
'提取各文件名
Dim tempStr As String
Dim tempFileName() As String
tempStr = OpenFileDialog.FileName
'如果用户取消了,或没有选择任何文件,处理返回仍为数组形式,OpenFileFuction(0)为""
If tempStr = "" Then
ReDim tempFileName(0)
tempFileName(0) = ""
OpenFile = tempFileName
Exit Function
End If
Dim P, N As Long
P = 0 '分隔字符位置
N = 0 '文件个数
'提取路径
ReDim tempFileName(1) '至少有一个文件
'P = InStr(1, tempStr, " ") '为UNICODE
P = InStr(1, tempStr, Chr$(0)) '为UNICODE
Debug.Print tempStr & " p=" & P
If P = 0 Then '如果只选择了一个文件
P = InStrRev(tempStr, "\") 'P取得"\"所在位置
tempFileName(0) = Left$(tempStr, P - 1)
tempFileName(1) = Mid$(tempStr, P + 1)
tempFileName(0) = IIf(Right$(tempFileName(0), 1) <> "\", tempFileName(0) & "\", tempFileName(0))
' tempFileName(0) = GetFilePath(tempStr)
' tempFileName(1) = GetFileName(tempStr)
Else '选择了多个文件
Do While tempStr <> ""
P = InStr(tempStr, Chr$(0)) '为UNICODE
ReDim Preserve tempFileName(N)
'如果没有空格(只剩余一个文件)
If P = 0 Then
tempFileName(N) = tempStr
Exit Do
Else
tempFileName(N) = Left$(tempStr, P - 1)
tempStr = Mid$(tempStr, P + 1)
N = N + 1
End If
Loop
tempFileName(0) = IIf(Right$(tempFileName(0), 1) <> "\", tempFileName(0) & "\", tempFileName(0)) '处理路径
End If
'返回文件名数组
OpenFile = tempFileName
'还原为单选
OpenFileDialog.Flags = 0
'------------------------------------------------
' Exit Function
' '----------------
ToExit:
ErrorLog "modFileOption\OpenFile"
Resume Next
End Function
第二种方法==================================================
Public Function OpenFile(strFileInfor As String, strFileType As String, blnIsMulti As Boolean, OpenFileDialog As Control, StrIntdir As String) As String()
On Error GoTo ToExit '打开错误陷阱
'------------------------------------------------
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'OpenFileDialog 通用对话框
'strstrfileInfor 文件提示
'strstrfileType 文件类型,扩展名
'blnblnismulti 是否为多选
'返回为文件名数组,OpenFile(0)存放文件路径,从1开始存放文件名,包括只有一个文件时的情况。
'返回的路径中已经包含了最后的"\"
'如果没有选择任何文件,OpenFileFuction(0)返回为""
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'设置打开文件对话框过滤器
OpenFileDialog.Filter = strFileInfor & "|" & strFileType
'设定是否可以多选
If blnIsMulti Then
OpenFileDialog.Flags = &H80200
OpenFileDialog.MaxFileSize = 1024 '设置使用CommonDialog控件被打开的文件名的最大尺寸
Else
OpenFileDialog.Flags = 0
End If
OpenFileDialog.InitDir = StrIntdir
OpenFileDialog.FileName = ""
OpenFileDialog.ShowOpen
'提取各文件名
Dim tempStr As String
Dim tempFileName() As String
tempStr = OpenFileDialog.FileName
'如果用户取消了,或没有选择任何文件,处理返回仍为数组形式,OpenFileFuction(0)为""
If tempStr = "" Then
ReDim tempFileName(0)
tempFileName(0) = ""
OpenFile = tempFileName
Exit Function
End If
Dim P, n As Long
P = 0 '分隔字符位置
n = 0 '文件个数
'提取路径
tempFileName = Split(tempStr, Chr$(0))
If UBound(tempFileName) = 0 Then '选择一个文件
ReDim tempFileName(1)
tempFileName(0) = GetFilePath(tempStr) '提取路径
tempFileName(1) = GetFileName(tempStr) '取文件名
Else
选择多个文件
tempFileName(0) = IIf(Right$(tempFileName(0), 1) <> "\", tempFileName(0) & "\", tempFileName(0)) ' '处理路径
For i = 1 To UBound(tempFileName)
tempFileName(i) = tempFileName(i)
Next i
End If
OpenFile = tempFileName
'还原为单选
OpenFileDialog.Flags = 0
'------------------------------------------------
Exit Function
'----------------
ToExit:
ErrorLog "modFileOption\OpenFile"
Resume Next
End Function
来自: http://hi.baidu.com/%B7%BF%B6%F7%BA%EA/blog/item/571de87a7555f0e82e73b38a.html
★VB部分相关文章推荐:★
※vb中line的用法[转]
※画图工具的VB实现
※VB 一个获得自己外网 IP 地址的程序代码
※VB程序中实现IP地址子网掩码网关DNS的更改 [转]
※在 VB 中应用 FSO 对象模型介绍(摘自网络)
※[转] Vb中FSO 对象的介绍
※VB 画坐标轴
※VB 二进制文件的操作
※[VB]BMP转JPGVB中KeyCode常数用法
※vb实时曲线的绘制和保存
※VB操作EXCEL
※vb初学回顾:最大公约数 最小公倍数 素数求取
※vb 关于窗口样式的API以及处理文本的API参考
※【引用】在VB6.0中实现弹出式菜单的几种方法
※【引用】URLDownloadToFile_VB下载文件!
※利用WinRar压缩和解压缩文件
※VB 剪切板
※VB实现指示窗口中拖动方框的程序
※VB绘制走动的表针
※如何用VB制作DLL文件
※【引用】VB修改IP地址
※VB多窗体退出代码
※[转]VB:如何检测到U盘的插拔(源代码)
※巧用SendMessage函数扩展Treeview功能
※vb中如何在任务管理器里面隐藏应用程序进程
※如何实现VB与EXCEL的无缝连接
※一个API方式存取日志文件的模块[VB]
※VB用记录集填充表格函数
※VB打开文本文件各种方法
※vb ClipBoard 剪切板应用(复制剪切粘贴)
※【引用】窗口处理技巧大全 vb(窗体控件)
※【转】 Md rd命令之VB
※vb:读写文本文件
※在vb中实现真正锁定的带自定义菜单的文本控件
※【引用】使用CommonDialog的ShowSave后如何判断是保存还是※取消?
※vb 关于commondialog的多选VB获取Windows操作系统所有版本
※vb UTF文本文件访问
※VB编程中的Unicode vs Ansi
※VB编PiView4注册机
※VB获取超过2G文件的大小
※比CopyMemory还要快的函数SuperCopyMemory
※VB:编程效率快步提高之:十七种可用一行代码完成的技巧
※VB画出来的五星红旗
※Qt第一印象——Qte与Qt
更多精彩>>>
vb 关于commondialog的多选相关推荐
- 【转】vb 关于commondialog的多选
代码如下: Function OpenFile(strFileInfor As String, strFileType As String, blnIsMulti As Boolean, OpenFi ...
- VB中CommonDialog示例
VB中CommonDialog示例 从project->components,选中microsoft common dialog control 6.0,点击"确定",会有C ...
- VB的CommonDialog控件的使用
vb的CommonDialog控件的使用 使用CommonDialog控件 CommonDialog控件提供诸如打开和保存文件.设置打印选项.选择颜色和字体等操作的一组标准对话框.运行 Windo ...
- vb 6.0服务器组件选哪个,Visual Basic6.0
Visual Basic6.0简称vb6.0,是款可视化的.面向对象的(oop).快速的事件驱动编程语言,支持多种程序语言的编写和编译,轻松使建立应用程序的GUI系统. Visual Basic6.0 ...
- [转载]VB中CommonDialog控件的使用
CommonDialog控件 1.添加到工具箱 执行菜单命令:工程 | 部件| 使Microsoft CommonDialog Contral 6.0复选框有效. 在工具箱中双击CommonDialo ...
- vb 6.0服务器组件选哪个,VB 6.0包括几种版本?分别是什么?
满意答案 xiangyutashu 推荐于 2019.10.14 采纳率:40% 等级:12 已帮助:6857人 Visual Basic 的版本 Visual Basic 有三种版本可以使用, ...
- ※部分VB文章汇总C※
★第十部分 ★ ※VB 删除带子文件夹和文件的文件夹※ ※VB选择文件夹并取文件夹名※ ※VB谨慎使用IsMissing函数※ ※VB 冒泡算法※ ※[转]注册ActiveX控件的几种方法(转) 分享 ...
- VB 打开txt,bat,jpg 任意后缀程序
老马写的一个程序不错调用起来还真是方便啊 ! 模块内容: Option Explicit Public Declare Function ShellExecute Lib "shell32. ...
- ※部分VB文章汇总A※
编前篇 ★微软公告:Visual Basic 6 完全兼容 Windows 8 的整个产品周期 ★Visual Basic 十年风云 ★微软 Small Basic 简体中文版 已经发布了 ★VB:如 ...
最新文章
- Sinew Ex深度发掘金融衍生品市场价值
- mysql 9.0创建数据库_数据库基础学习——MySQL数据库知识小结(9)
- 和ur的区别_UR机械臂simscape正逆解仿真
- centenos安装mysql,Cento7 安装mycat和mycat-eye
- C语言,使用union了解内存
- 企业微信H5_网页jssdk调用 config和agentconfig的区别
- navicat er图没有连线_迁徙图?流向图?城市关系强度图?
- mysql join越多性能_mysqljoin的原理和优化
- 深入理解cookie
- php中循环用冒号,for循环条件里冒号是什么作用?
- 特斯拉电池检测_电动车开几年衰减大电池不行了?特斯拉:在我这儿不是事儿...
- 算法学习(十九)——A3C
- 图片轮换-jQuery
- srt转vtt——在线转换工具
- 【初探篇】申请阿里云免费SSL证书并配置https访问实战
- 山东超级计算机神威,世界最快超级计算机“神威·太湖之光”获得100多项应用成果...
- 位操作符左移问题(<<)如果char类型左移后位数超出一字节如何打印?
- 安卓 微信公众号 默认不操作拦截回退失败
- MySQL中 (GROUP BY 用法)和(ORDER BY用法)
- Springboot+vue+websocket 实现前后台主动通信
热门文章
- 面部识别 vs 情绪状态,你还能守住自己的秘密吗?
- 5G 登上“神坛”,区块链裁员求生!
- 如何使用 SpringCloud 搭建服务注册中心?
- 为什么程序员对旧代码深恶痛绝?
- 为什么程序员愿意加入管理糟糕的创业公司?
- Google,一切皆为 AI!
- power bulider 9.0 如何将sql语句查询的值返回给变量_SQL—你应该知道的子查询
- J2EE的核心API与组件
- php 打包下载网络图片,php多张图片打包下载
- barco控制软件支持linux_vnc远程控制软件linux,在linux系统上能够使用的vnc远程控制软件...