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

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 元 素 来 扩 充 文 件 查 询 功 能( 按 文 件 属 性、 创 建 日 期、 最 后 修 改 日 期、 最 后 访 问 日 期 等 不 同 条 件 的 查 询)。
在Delphi 中使用计算出的字段 在Delphi3 程 序 中自 动 检 测、 建 立 数 据 库 别 名 和 表 格 在Delphi3程序中自动检测、建立数据库别名和表格 在Delphi4 BDE中配置Access数据库 在Delphi5 中修改了Delphi自带的VCL Source文件后怎样重建Delphi的库文 在DELPHI程序中动态设置ODBC数据源 在DELPHI程序中使用ADO对象存取ODBC数据库 在DELPHI程序中自动设置ODBC数据源 在Delphi的DBGrid中插入其他可视组件 在Delphi的Socket编程中如何从服务器向指定的客户机发送信息? 在Delphi动态生成定义数据库 在Delphi中处理数据库日期型字段的显示与输入 在Delphi中简单实现多重查询 在Delphi中建立和使用别名 在DELPHI中使用ADO对象存取ODBC数据库 在Delphi中使用DBF数据 在Delphi中随意控制DBGrid 每一行的颜色 在Delphi中自动检测、建立数据库别名和表格 在存储过程中使用use database-Delphi资料 在一个Dbgrid中显示多数据库-Delphi资料 在运行期创建表-Delphi资料 怎样把可以使用的表名输出到一个选择框?-Delphi资料 怎样发布基于Microsoft SQL Server的程序-Delphi资料 怎样解决打开一个DBF表时的Index not found..错误-Delphi资料 怎样向SQL Server插入带有Image字段的记录-Delphi资料 怎样在Paradox表中加密码?-Delphi资料 自动Login数据库-Delphi资料 自动检测、建立数据库别名和表格-Delphi资料 自动注册Paradox-Delphi资料 Delphi 4增訂的Object Pascal Delphi 5 Enterprise版10大特点 访问该页者有分!!!!!!!!!!!!!! 数据库问题!急用! 为什么触发器只触发最后一条记录?(付触发器) 我用web程序生成了word的document的对象,怎么通过网页输出word文件?不是保存到 俯卧撑次数首次超40,放分! 一个使用motoSDK的问题请较! 一个奇怪的问题?? 我用web程序生成了word的document的对象,怎么通过网页输出word文件?不是保存到硬盘,而是response到用户? 一个非常初级的问题。 中国积极培养电脑“网络战士” ---泰晤士报星期刊 sco unix 高手请进 我再放!! 求救!!!!!!一个SQL的问题 为什么用中断1A获取网卡的配置空间时,在偏移量10h处只能获取mac地址的前8位,后4位无法获取??? 我又放!! 存储过程的高级应用问题,急用! 在combobox中禁止某些字符输入,为什么不成功? 我没完没了的放!! 怎么把数字39显示成0039,同理9显示成0009,多谢指教(在线等待) 大虾:如何用ADO向Access2000的BLOB字段中放图像文件?请赐教!... ASP.NET 调试问题 pb 有没有中文版呀`~~或者是汉化包呀`~ 如何做程序组安装盘???---在线等候!!! 存储过程返回值判断出错,大家看看是存储过程出错还是asp.net代码出错,给300分!! weblogic怎么老跟sqlserver连不上? 请各位前辈帮帮我。怎样能收到外部发进来的邮件?? 有在web上显示数据库中图片成功的吗?是sybase数据库。我们交流一下。 是谁干的站出来!!! 电子书籍请教!!! 哪里有InterBase6.0 Server下载?? recordset、connection等的释放内存问题:是不是每用一次都要set =nothing? Analysis server 2000的Bug ? 寻找SQL Server系统存贮过程和函数 各位DX,什么地方有windows 2000 platform sdk 下载啊?!!!!! 看了C++ language programmer (特别版) PopupMenu为什么单击右键不能出现弹出菜单呢? 各大虾好,我是一名小鸟希望快快长大,首先我要搭一个家,请问jsp调试环境如何建立?请详细一些好吗?谢谢 如何在MDI中进行静态拆分? 这是什么问题????非常急!!! 想订杂志但不知道哪些杂志好?诸位能给点意见与我吗???(图像类和网络类) 想订杂志但不知道哪些杂志好?诸位能给点意见与我吗???(图像类和网络类) 请问如何入理ASP文本无法换行的问题? 想订杂志但不知道哪些杂志好?诸位能给点意见与我吗???(图像类和网络类) linux硬盘安装 小调查:天津的程序员工资 哪位高人能详细讲述一下三层结构的概念? 求解题思路(扑克牌大小问题,有帮助的均给分) 窗体上有2个PictureBox,如何用一跟线把它们连起来? 问一个ftp的数据传输格式问题!:) redhat7.2下如何安装 j2sdk-1_4_0_01-linux-i586-rpm.bin 谁有变量命名规范,如果有完整的编码规范更好 大自然的声音给我们的感受……快……谢谢啦! 凝结水溶解氧增大有哪些原因? 世界上是否存在另一个空间 如何用万用表测量接地电阻. 水中有机物增加,水溶解氧的能力会( ) A.增大 B.减小 C.不变 想知道另一个空间是否存在?如题不知道是否有所谓的二次元,平行空间等的存在 用绝缘线拴一小球质量m,小球在竖直向下的场强为E的匀强电场中竖直平面内做圆周运动,则小球带 金属导电体能带电吗? 紧压圆形电缆怎么测直径 竖直平面内的圆周运动一个小球在竖直环内至少做N次圆周运动,当它第(N-2)次经过环的最低点时,速度是7m/s;第(N-1)此经过环的最低点时,速度为5m/s,则小球在第N次经过环的最低点时的速 怎样找圆的直径不是什么“卡尺”?我看没有“随便在圆作一条弦,然后作该弦的中垂线就是该圆的直径了! 如图AE是圆O的直径,AF垂直BC于D,试说明:BE=CF 斜齿园柱齿轮Z1=21 Z2=140模数8螺旋角12度求各几何尺寸 一个圆不知道圆心的位置,请你想办法测出圆的直径,并把你的方法写出来. 蚂蚁的触角干嘛用的?蚂蚁生活在哪里 外啮合斜齿圆柱齿轮传动 Z1=25 Z2=100 M=4 MM β=15°,α=20° 求斜齿轮主要几何尺寸 地球有多少空间? 蚂蚁的触角有什么用?详细一点.好的话,我会悬赏30 在使用天然气做饭有时候会闻到一股异味,为什么? 地球有多少个空间?有多少个位面?又有多少个我? 丹麦曾经捉过眼睛颜色的遗传调查,下列为原始数据:(数据见附图)①眼睛颜色这一对相对性状中,控制褐眼性状的基因为:_____(填“隐性”或“显性”)控制蓝眼性状的基因为:_____(填 三次科技革命的区别? 我家用的是天然气,为什么还闻到煤气味? 太阳围者地球每小时行多少千米? 三次科技革命的不同只要不同,省略点,谢谢啊—————— 求开关插座绝缘电阻测试接线方式绝缘电阻仪是艾诺AN9632XW,我安照标准的方法连接怎么不显示电阻呢? 1T等于多少GB? 三次科技革命分别是什么 开关插座哪种接线方式最好? 跪求做弹簧的做好的材料,要求尽量轻,弹性最好,求答,给100我要做一重东西要用到弹簧,像床垫子一样压下能有最好的反弹效果,尽量轻的,当然已弹性好为主,不轻也没关系,希望能给推荐材料,购 三次科技革命比较, 怎样才能量出圆形游泳池的直径 什么样的弹簧的弹性能力最好? 如图所示,小球A质量为m.固定在轻细直杆L的一端,并随杆一起绕杆的另一端O点在竖直平面内做圆周运动.如果小球经过最高位置时,杆对球的作用力为拉力,拉力大小等于球的重力.求:(1) 在方向竖直向下的匀强电场中,以绝缘轻细绳一端固定于O点,另一端系衣带正电的小球在竖直平面内作圆周运动小球带电量为q,质量为m,绝缘细线长为L,电场强度为E,若小球恰好能通过最高点A,则 创建文明城市的手抄报 细绳一端固定,另一端系一质量为M的小球,小球绕绳子的固定点O在竖直平面内做圆周运动.则细绳在最低点和最高点的张力之差为多少?忽略空气阻力 如何将一个三分之一圆的直径量出来今天厂长叫我把一个零件的尺寸测量下,但有一段是圆的三分之一,我不知道怎么量,要用啥测量工具?是近似三分之一,而且我看不出来这圆与它的切线的结 谁知道哪里的弹簧做的最好 细绳的一段固定,另一端系一质量为M的小球,小球绕绳的固定点在竖直平面做圆周运动.小球在最低点和最...细绳的一段固定,另一端系一质量为M的小球,小球绕绳的固定点在竖直平面做圆周运动 帮我把这个圆的直径求出来,求帮忙正方形是边长是190mm,我没有分哈,求帮忙在线等回答,给我一个整数,根什么的我还没学到 怎样做创建文明城市手抄报 机械图纸上技术要求里常写的“未注公差尺寸按GB/T1840-m”在那可以下载?机械图纸上技术要求里常有这两条:1、未注公差尺寸按GB/T1840-m,2、未注形位公差按GB/T1184-k.请问一下具体公差及形位 直径为17厘米,高17厘米的圆主形的体积是多少升! 创建文明城市 我是小主人手抄报. M、N表示自然数,设SM、SN风别表示M、N个位数字之和,M#N表示M除以N所得的余数,已知M、N之和是7043.求(SM+SN)#9的值 做饭时煤气味大如何解决 不锈钢弹簧用什么材料最好,要求材料能加硬到HRC52-55材料需耐磨.工件高速1000转/分钟与铜摩擦,能用3个月. 英语翻译 在所有的三位自然数中,用较大的自然数除以较小的自然数,得到的余数最大可能是为什么 做以创建文明城市为主题的手抄报题目应该叫什么 如图所示,用绝缘细线拴一个带负电的小球,让它在竖直向下的匀强电场中绕O点做竖直平面内的圆周运动,a、b两点分别是圆周的最高点和最低点,则( )\x05A.小球经过点a时,线中的张力最小\x05 英语翻译给曾经是孩子的我和长大的你.to.{写在书的扉页上的那种) 以创建文明城市,提高中学生素质为主题的手抄报报内容,最好有图 17.如图所示,在匀强电场中,一个带负电的物体沿水平方向的绝缘天花板平面做匀速直线运动.从某时刻(设为t = 0)起,电场强度从E0均匀增大.若物体与天花板平面间的动摩擦因数为 ,电场线与 如图,竖直放置的光滑绝缘环上套有一带正电的小球,匀强电场场强方向水平向右,小球绕O点做圆周运动,那么A.在A点小球有最大的电势能B.在B点小球有最大的重力势能C.在C点小球有最大的机械 图2中曲线甲、乙分别代表物质进出细胞的两种方式.请据图回答:曲线乙中Q点对应时刻细胞不再吸收物质分子,此时,限制物质进入细胞的因素是____________. 能量供应和载体.现在的问题是:有 1G等于1024GB么 如图3所示,一小球在轻质细绳作用下在竖直平面内做圆周运动.若绳长为L,则小球正好能通过最高点时 世上是否存在另一个空间呢?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘