含子目录的搜寻档案.doc

含子目录的搜寻档案.doc

ID:11128727

大小:26.51 KB

页数:6页

时间:2018-07-10

含子目录的搜寻档案.doc_第1页
含子目录的搜寻档案.doc_第2页
含子目录的搜寻档案.doc_第3页
含子目录的搜寻档案.doc_第4页
含子目录的搜寻档案.doc_第5页
资源描述:

《含子目录的搜寻档案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、含子目录的搜寻档案含子目录的搜寻档案标题:非递回、无使用界面的档案搜寻一般来说,搜寻目录及子目录底下符合条件之所有档案功能的程式撰写,一向颇令人头疼,而最後的解决方式多用Recursive(程式递回呼叫)来解决,像所附的范例,就是FileListBox和Recursive程序的兼用,来解决这个问题。本范例则用另一种思考模式切入,在不使用任何OCX及Recursive程序下利用两个非固定阵列变数及双层Do...Loop回圈解决这问题。本范例代表的含意是你把这段Code搬到无使用者可视界面的Module及Class里,一样可以执行(程式里的List

2、Box及MsgBox只是为了解说方便而已,实际的资料已放入FilePackage这个动态阵列里,可以Index取用。)当然你不能拿Windows95提供的[寻找]功能的搜寻速度来要求本范例,因为那根本是两种不同的驱动方式,但我用c:为搜寻启始目录,以*.*为条件来与的范例程式相比,是2分钟,我是分钟。更值得一提的是,其实整个搜寻动作在55秒时已全部完成,剩下的时间都是用来显示ListBox资料。所以如果你的程式并不需要立即的显示查询结果,那麽本范例将比更适合你使用。最後如果你觉得本程式有任何错误或有改进的意见,请写信给站长,站长会转信给我,在

3、此先谢谢你了。"NeedaListBox,CommandBoxOptionExplicit"宣告搜寻到的档案的储存阵列变数PrivateFilePackage()AsStringPrivateSubCommand1_Click()"宣告存放目录名称储存阵列变数DimDirPackage()AsString"存放档案搜寻条件之字串DimSearchStringAsString"接收Dir()传回字串,并做为回圈判断的字串DimDirStringAsString"I目前搜寻目录的指位器,J是DirPackage目录阵列之上限指标"K是FilePac

4、kage之档案阵列之上限指标DimIAsLong,JAsLong,KAsLong"把ListBox的旧显示资料清掉"把FilePackage的上一次搜寻资料清掉EraseFilePackage"假设我们的搜寻从C碟根目录开始ReDimDirPackage(0)"路径结尾一定要加DirPackage(0)=c:"假设我们的搜寻字串是*.exeSearchString=*.exe"显示沙漏指标=11"--------以下搜寻C碟里所有的目录-----------------"直到目录指位器I超过目录上限指标J才结束搜寻DoWhileI<=

5、J"搜寻目录指位器I所指的目录DirString=Dir(DirPackage(I),vbHiddenOrvbDirectoryOrvbReadOnlyOrvbSystem)"直到目前目录找不到任何目录或档案才结束DoWhileDirString<>"不要把上层目录和现目录的指标符号算进去IfDirString<>.AndDirString<>..Then"如果找到的是个目录If(GetAttr(DirPackage(I)&DirString)AndvbDirectory)_=vbDirectoryT

6、hen"把目录上限加1J=J+1"把储存目录名称的阵列加一个ReDimPreserveDirPackage(J)"把查到的新目录放在DirPackage新元素里DirPackage(J)=DirPackage(I)+DirString+"如果找到的是个档案Else"如果与搜寻字串相符合IfUCase(DirString)LikeUCase(SearchString)Then"把储存档案名称的阵列加一个ReDimPreserveFilePackage(K)"把查到的新档案放在filePackage新元素里FilePackage(K)=DirPa

7、ckage(I)+DirString"把档案上限加1K=K+1EndIfEndIfEndIf"继续找是否有符合的资料,并把结果放DirString里DirString=DirDoEventsLoop"把现目录指标往下移一个I=I+1Loop"--------以下将结果输出到列示盒里-----------------"--------以下为找到档案之总计-----------------"还原滑鼠指标=0IfK=0ThenMsgBox没有&SearchString&的档案Else"以下将结果输出到列示盒里ForI=0ToUBoun

8、d(FilePackage)(I)DoEventsNextMsgBox总共找到&UBound(FilePackage)+1&个档案En

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。