网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Visual Basic
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.分割图像的方法.
.VB6内置的内码转换功能.
.从VB中的Datagride中向excel导入.
.使用VB开发Windows环境下的串行通.
.多用户应用程序中应注意问题3.
.VisualBasic深度下潜之海蛇缠绕.
.如何用API定义程序热键.
.在VB5.0中编辑数据库和电子表格.
.在桌面上建立一个Internet快捷键.
.在VisualBasic6.0中实现自动播放.
.页面锁定的锁定方案--多客户环境.
.保存窗口位置来增加专业性.
.VB“超频”秘籍之隐藏的Variant变.
.使用VisualBasic访问数据库几个注.
.编制自已的电话录音小程序.
.实现Access数据库的Web查询.
.ODBCAPI的VBSample.
.用VB捕捉屏幕图象.
.放置“透明”的图片.
.VBCOM基础讲座之ActiveXEXEs.

用VB函数Dir实现递归搜索目录

发表日期:2006-2-27


用VB函数Dir实现递归搜索目录

我在很久以前就实现了这个方法了.它没有采用任何的控件形式.也没有调用系统API函数FindFirst,FindNext进行递归调用,和别人有点不同的就是我用的是VB中的Dir()函数.事实上,直接采用Dir()函数是不能进行自身的递归的调用的,但我们可以采用一种办法把Dir将当前搜索目录的子目录给保存下来,然后在自身的search(strPathName)递归函数中依次进行递归的调用,这样就可以把指定的目录搜索完毕.

具体代码如下:

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'函数GetExtName

'功能:得到文件后缀名(扩展名)

'输入:文件名

'输出:文件后缀名(扩展名)

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

PublicFunctionGetExtName(strFileNameAsString)AsString
DimstrTmpAsString
DimstrByteAsString
DimiAsLong
Fori=Len(strFileName)To1Step-1
strByte=Mid(strFileName,i,1)
IfstrByte<>"."Then
strTmp=strByte strTmp
Else
ExitFor
EndIf
Nexti
GetExtName=strTmp
EndFunction
PublicFunctionsearch(ByValstrPathAsString,OptionalstrSearchAsString="")AsBoolean
DimstrFileDir()AsString
DimstrFileAsString
DimiAsLong

DimlDirCountAsLong
OnErrorGoToMyErr
IfRight(strPath,1)<>"\"ThenstrPath=strPath "\"
strFile=Dir(strPath,vbDirectoryOrvbHiddenOrvbNormalOrvbReadOnly)
WhilestrFile<>""'搜索当前目录
DoEvents
If(GetAttr(strPath strFile)AndvbDirectory)=vbDirectoryThen'如果找到的是目录
IfstrFile<>"."AndstrFile<>".."Then'排除掉父目录(..)和当前目录(.)
lDirCount=lDirCount 1'将目录数增1
ReDimPreservestrFileDir(lDirCount)AsString
strFileDir(lDirCount-1)=strFile'用动态数组保存当前目录名
EndIf
Else
IfstrSearch=""Then
Form1.List1.AddItemstrPath strFile
ElseIfLCase(GetExtName(strPath strFile))=LCase(GetExtName(strSearch))Then
'满足搜索条件,则处理该文件
Form1.List1.AddItemstrPath strFile'将文件全名保存至列表框List1中
EndIf
EndIf
strFile=Dir
Wend
Fori=0TolDirCount-1
Form1.Label3.Caption=strPath strFileDir(i)
Callsearch(strPath strFileDir(i),strSearch)'递归搜索子目录
Next
ReDimstrFileDir(0)'将动态数组清空
search=True'搜索成功
ExitFunction
MyErr:
search=False'搜索失败
EndFunction

->

上一篇:如何利用VB编写NT服务程序 人气:5725
下一篇:从VB中的Datagride中向excel导入数据 人气:3793
浏览全部Visual Basic的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐