说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB如何在VB中实现目录遍历

HTML文档下载 WORD文档下载 PDF文档下载
VB如何在VB中实现目录遍历
中 兴 新 太 数 据 通 信 有 限 公 司
张 易 平
---- 看 了 九 九 年 第 七 期E18 版 中《 子 目 录 级 文 件 查 询 的 实 现》 一 文, 为 便 于 读 者 方 便 使 用, 本 人 将 在VB 中 实 现 目 录 遍 历 需 要 注 意 的 地 方 及 代 码 提 供 给 读 者, 希 望 能 对 大 家 有 所 帮 助。 以 下 代 码 在PWIN97、VB6 下 测 试 通 过。

一、API 函 数 的 声 明、 自 定 义 数 据 类 型 及 常 量 的 定 义
---- 注 意:API 函 数 的 声 明 应 在 应 用 程 序 的 代 码 模 块 中 进 行, 且 一 条 声 明 必 须 放 在 一 行 中'API 函 数 的 声 明
Public Declare Function FindFirstFile Lib
"kernel32" Alias "FindFirstFileA"
(ByVal lpFileName As String,
lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindNextFile Lib
"kernel32" Alias "FindNextFileA"
(ByVal hFindFile As Long, lpFindFileData
As WIN32_FIND_DATA) As Long
Public Declare Function FindClose Lib
"kernel32" (ByVal hFindFile As Long) As Long

'最大路径长度和文件属性常量的定义
Public Const MAX_PATH = 260
Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Public Const FILE_ATTRIBUTE_COMPRESSED = &H800
Public Const FILE_ATTRIBUTE_DIRECTORY = &H10
Public Const FILE_ATTRIBUTE_HIDDEN = &H2
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const FILE_ATTRIBUTE_READONLY = &H1
Public Const FILE_ATTRIBUTE_SYSTEM = &H4
Public Const FILE_ATTRIBUTE_TEMPORARY = &H100

'自定义数据类型FILETIME和WIN32_FIND_DATA的定义
Public Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Public Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
二、 去 掉 固 定 长 度 字 符 串 右 边 的NULL 字 符(ASCII 值 为0) 和SPACE 字 符(ASCII 值 为32)
---- 由 于 数 据 类 型WIN32_FIND_DATA 的cFileName 元 素 为 定 长 数 据 类 型 且 在 执 行 函 数FindFirstFile 和FindNextFile 后 会 有NULL 字 符, 因 此 需 去 掉 其 中 的 无 效 字 符。
Public Function fDelInvaildChr
(str As String) As String
On Error Resume Next
For i = Len(str) To 1 Step -1
If Asc(Mid(str, i, 1)) < >
0 And Asc(Mid(str, i, 1)) <> 32 Then
fDelInvaildChr = Left(str, i)
Exit For
End If
Next
End Function
三、 遍 历 主 函 数
---- 参 数 说 明:
strPathName要遍历的目录
objList 使用VB的内部控
件ListBox来存放遍历得到的路径,之所以
不使用字符串数组是因为数组大小不好定义

Public Sub sDirTraversal
(ByVal strPathName As String, ByRef objList As ListBox)
Dim sSubDir(200) As String
'存放当前目录下的子目录,下标可根据需要调整
Dim iIndex As Integer
'子目录数组下标
Dim i As Integer
'用于循环子目录的查找

Dim lHandle As Long
'FindFirstFileA的句柄
Dim tFindData As WIN32_FIND_DATA '
Dim strFileName As String '文件名

On Error Resume Next
'初始化变量
i = 1
iIndex = 0
tFindData.cFileName =
"" '初始化定长字符串

lHandle = FindFirstFile
(strPathName & "\*.*", tFindData)
If lHandle = 0 Then '查询结束或发生错误
Exit Sub
End If
strFileName = fDelInvaildChr(tFindData.cFileName)
If tFindData.dwFileAttributes = &H10 Then '目录
If strFileName <> "." And strFileName <> ".." Then
iIndex = iIndex + 1
sSubDir(iIndex) = strPathName
& "\" & strFileName '添加到目录数组
End If
Else
objList.AddItem strPathName
& "\" & strFileName
End If
'循环查找下一个文件,直到结束
Do While True
tFindData.cFileName = ""
If FindNextFile(lHandle, tFindData)
= 0 Then '查询结束或发生错误
FindClose (lHandle)
Exit Do
Else
strFileName = fDelInvaildChr
(tFindData.cFileName)
If tFindData.dwFileAttributes = &H10 Then
If strFileName <> "." And strFileName <> ".." Then
iIndex = iIndex + 1
sSubDir(iIndex) = strPathName
& "\" & strFileName '添加到目录数组
End If
Else
objList.AddItem strPathName & "\" & strFileName
End If
End If
Loop
'如果该目录下有目录,则根据目录数组递归遍历
If iIndex > 0 Then
For i = 1 To iIndex
sDirTraversal sSubDir(i), objList
Next
End If
End Sub
---- 利 用 以 上 遍 历 方 法, 读 者 可 以 根 据 数 据 类 型WIN32_FIND_DATA 的dwFileAttributes、ftCreationTime、ftLastAccessTime、ftLastWriteTime 元 素 来 扩 充 文 件 查 询 功 能( 按 文 件 属 性、 创 建 日 期、 最 后 修 改 日 期、 最 后 访 问 日 期 等 不 同 条 件 的 查 询)。
使用VB获得一页的HTML代码 使用VB收发电子邮件 VB使用超链接和发送Email VB使用浏览器的文件复制对话框 输入/输出篇 -VB资料 通过WnetEnumResource函数获得网络资源 -VB资料 通往 Internet 的捷径-VB资料 显示计算机的名称 -VB资料 VB用 MAPI 控件实现发送邮件 VB用 WinSock 控件下载文件 VB用 Winsock 实现聊天的程序 VB用Internet Transfer编写FTP程序 VB用Sockets发送电子邮件 用VB 创建自己的通信程序 用VB5.0开发通信软件的技巧 用VB5开发IE 用VB编写网络寻呼 用VB编写小型的网络系统 用VB创建自己的通信程序 用VB构建Internet的应用 用VB开发标准CGI程序 用VB实现客户——服务器(TCP/IP)编程实例 用VB实现聊天讨论室和点对点会话 用VB写一个定时PING某IP的程序 用VB制作浏览器 用Visual Basic 5.0设计E-mail程序(MAPI) 用Visual Basic6.0编写客户服务器程序 用Visual Basic创建FTP组件 用Visual Basic开发数据库浏览器 用Visual Basic轻松地设计Browser及Ftp程序 VB用Winsock控件发信Email 显卡显示有阴影??? 有挑战性的翻译,请翻译下列C++名词,并请举例说明 麻烦大哥们看看!关于wab应用中在datagrid中取值的问题 如何实现CSDN这样回答问题的效果? 初级问题,请各位大侠帮忙! 数据结构中关于二叉排序树的生成问题 请教高手:如何在一区域找到找到指定颜色的点?? 一个关于窗口的问题 如何在数据窗口实现编辑、修改等后的撤消、复制、粘贴、剪切功能! exec,sp_executesql语句,中字符串变量的问题 急~~~~(请赐教)! window.showModaldialog()问题 关于Internet Explorer不能打开链接的问题 求助 求购:中国地质大学(京)网络历年考研题复习资料 Longhorn与WINDOWS2003是何关系? applet的执行顺序问题?? 在数组里找到最大值的函数是什么? 没有监听器? VB .NET能用于AutoCAD开发吗? 如何用OnMouseWheel实现Image的放大缩小? 装了Media Player 9.0,怎么没声音? 如何将DataSet中的数据全部写入数据库? 简单问题(关于光标移动) 一个关于java的小问题要请教? 请问delphi中有二~十进制的转换函数吗..... 关于不同页面调用的问题,谢谢 can't open the file"cos.obj" 这里到底怎么了?有人“非典”发作了? 关于STL的问题: dreamwearver mx如何预览asp.net的一些控件>? 关于日期格式的问题 如何使自己的程序访问别的程序的内容? 很初级的问题. 关于DB2的培训资料或者ppt 初学JAVA希望大家介绍点好书,有分的哦~~~~~~~~~~ 关于DB2的培训资料或者ppt qqf (我就是我) 可以进来一下吗? 准备作一个短信项目,请做过类似项目的高手不吝指教! 关于刷新框架内页面的问题! 请教,真的很急,来看看,,, 帮忙出主意呀, 新认识一个MM, 特骄气, 爱好也少,怎么哄呀,或者兄弟们介绍一下经验. 求delphi 5开发人员指南 电子版 如何用四叉树进行图像压缩源代码 小问题 谁对nil理解的多呀,哈哈,来看看哦,超级难题 开机自检的时候屏幕花屏,无法进入操作系统。图形模式下花屏,文字模式下正常,怎么解决? 高分求助,JS菜单问题,在线等 我需要msdn最新版 连接 vb做报表的问题 好书推荐 我的站点怎么必须登陆? 八年级上册物理人教版导学方案期中单元评价答案(改版的 叫问题解决导学方案),老师下一节课要对 我要用人教版的 山西出版传媒集团 山西教育出版社 出版的 有几种记课堂笔记的好办法? 山西民风民俗(口语交际)大约100字 怎么上好历史导学案课呢? 怎么记初中语文课堂笔记 满族风俗的习作 结合教学实际说说如何上好一节数学课? 高中应怎样记课堂笔记感觉课上笔记很紧张,觉得是不是应该改变方式,问下 求埃菲尔铁塔和比萨斜塔美图 2011社会热点话题是什么? 2010最近热点话题越多越好啦! 澳大利亚历史悠久的景点是什么?类似于比萨斜塔、圣保罗大教堂、埃菲尔铁塔,但要是澳大利亚的.类似于比萨斜塔、圣保罗大教堂、埃菲尔铁塔,但要是澳大利亚的.注意是——类似于 如何作课堂笔记?如何作 English 笔记?如何学 English?如何学 math?THANK YOU VERY MUCH! 未选择的路诗中流露了作者一种什么复杂情感 繁星共多少首?春水多少首?她的诗集被茅盾称为什么 过年挂红灯笼的典故是什么 和李自成有关 分析《百年孤独》中的魔幻现实主义特色问答题 30分 《繁星》《春水》被茅盾称为 求几个辩论会主题,最好简单一点,时代感强一些尽量多一些,能再加两个与大学生有关的吗? 这是哪篇课文啊 口语交际·习作训练七:写一个给人留下深刻印象的人 习作要求:一个特点鲜明的人,总是给人留下深刻的印象,即使偶然见上一面,他(她)的音容笑貌、举手投足,也会留在心中挥之不去.这 英语翻译[-]February 1,2010 - Counter-Strike:Source Update ReleasedUpdates to Counter-Strike:Source have been released.The updates will be applied automatically when your Steam client is restarted.The major changes include:EngineSMX,GCF,and SYS fi 怎样做课堂笔记 为什么说意识形态能够发挥“观念的力量”的作用? 相等时间内通过的位移相等是不是匀速直线运动?相等时间内通过的位移不等是不是一定是变速运动 如何做课堂笔记 为什么说意识形态能够发挥观念的力量 春节是怎么来的?要简短一些的. 论2010年热点话题,最好是关于房产的 谈论2010年热点话题 大于150字 怎样测蚂蚁体内酸碱度,也就是Ph为多少? A,B两质点做匀速直线运动,那么在相等时间内,他们的位移相同 2010年至2011年的政治热点话题 ? 中兴U960s手机没有自带的Recovery!如何刷入Recovery?手机已ROOT.通过各种方式刷入Recovery,有的提示成功,但只要进入Recovery模式就是这个样子 甲瓶有酒精480毫升,乙瓶有300毫升,现甲、两瓶每天都用去酒精20毫升,问几天后甲剩下的酒精刚好是乙的2倍?列方程 这哪篇课文里的 如何没有root进入recovery模式 A瓶有酒精480毫升,B瓶有酒精300毫升,现A、B两瓶每天都用去酒精20毫升,问几天后A剩下的酒精刚好是B的2倍 09年的热点话题小学六年级下册第二单元口语交际急用 手机在没有root的情况下怎么刷入第三方recovery啊我的oppo finder升级到4.1.2后,无法一键root,我下了个root包和第三方recovery,怎么刷入第三方recovery,官方的recovery无法安装root包 一袋牛奶5分之1升,一盒牛奶2分之1升.(1)周末,李阿姨到超市买了4盒牛奶和5袋牛奶,一共是多一袋牛奶5分之1升,一盒牛奶2分之1升.(1)周末,李阿姨到超市买了4盒牛奶和5袋牛奶,一共是多少毫 盐类的水解PH大小的判断方法.怎么判断2种物质的PH呢?希望特全,最好给例子.给的全 多加50分, 关于马的典故 少的 洁白牌洗洁精每瓶25元,王阿姨准备给单位购买12瓶这种品牌的洗洁精,甲超市买五送一,乙超市打八五折,到哪家比较划算?瞎掺合的爬, 盐类的水解PH一定发生变化吗 当前中国的文化信仰方面应该怎么做呢 csonline中C4爆炸倒数时的英文句子及解释twenty second 后面说的啥 然后等一会就倒记时了 急救:盐类的水解与PH值!某温度下,0.1mol/L醋酸溶液的PH=3.将该温度下0.2mol/L醋酸溶液和0.2mol/L醋酸钠溶液等体积混合后,混合液的PH=4.7.下列说法正确的是()并说明原因A 该温度下,0.01mol/L醋酸 古人谈读书说要把“厚书读薄,薄书读厚”,所谓“薄书读厚”即孔子所说的( )(五个字). 一个做直线运动物体的位移随时间变化第二题 求详解! 高中常见盐类的水解的PH值?要准确的PH值,是盐溶于纯水中 我说的是化学上得盐类如NAHCO3,NAHCLO等 电流表测的是哪个电流a为电流表,b为电压表 守时 阅读 我得到了什么启示 下列句子的语病分别在哪里,福建省福州市荣获“全国卫生城市”的原因是全市人民共同努力的结果. 马的典故有什么 比较PH的大小比较PH 0.1mol/L的(NH4)2SO4 和NaHSO4 PH 哪个大?为什么? 课堂笔记怎么记? 谁知道关于''马''的典故 那导学案 与学案 ,两者制作的交叉部分岂不太多了?它们都贯穿全节课哦! 怎样记课堂笔记? 语文民族风俗口语交际 安徽阜阳为“面子”修铁皮板墙 “里子伦敦前市长:伦敦有必要成为一个独立国埃及摧毁\"进口通道\"致燃料缺乏 2 2会谈,日联俄制华打错算盘英国房价持续高涨 或考虑向海外房主征杭州地铁开通未满1年46块钢化玻璃碎人社部副部长:稳妥改革机关事业单位养日大规模“夺岛”军演剑指何方?洛杉矶机场枪击案嫌疑人身份确定2013国际变性人选美决赛在泰国落幕日媒:日俄拟促防务交流 俄方就领土问美环保专家:手机等移动设备将成重要环洛杉矶机场枪击案嫌犯身份确定 被指曾伦敦前市长:伦敦有必要成为一个独立国伦敦前市长:伦敦有必要成为一个独立国国际核查人员证实叙利亚已销毁化学武器英女子脱光上衣过安检引骚乱被罚(组图联合国官员:目前还在讨论叙利亚化武销杨洁篪:中国是二十国集团的积极参与者“中国皮都”平阳十年整治制革产业 政微信被指“封杀”来往 回应称打击病毒国办:地方不得因偿还债务影响基本公共国际“剁手党”狂抢3500万单 速卖习近平与特朗普通话谈及南海等问题?外世界名校访谈③|悉尼大学校长:中国学国办:地方应建政府性债务风险报告制度重庆流动服务车送国债下乡进社区 当天中央军委机关事务管理总局全面实施统管张广智出任陕西省委常委、省委组织部部美拟暂停TPP进程 中方:自贸安排之两亲家母同患“挤眉弄眼”十余年 小男童坠井身亡 河北枯井所有权遭各部门美国多地持续发生反特朗普示威游行 部三进足协杯决赛 江苏苏宁力争第二冠巴基斯坦一宗教场所遭炸弹袭击 中方对外交部:中方支持有关国家发展正常友好南水北调水源区:柑橘飘香江西铜鼓:山村红薯地里开出了“致富花吉林打造东北虎繁育基地吸引更多“王者李安的困境:技术突飞猛进,人文止步不儋州一快递超市违规收取派送快件费 邮外交部:杜特尔特最近言行重申改善对华
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘