在VB中直接用ODBCAPI访问数据库 |
|
www.nanhushi.com 佚名 不详 |
从windows 95开始,微软为我们提供了一个好用的文件搜索器。使用这个搜索器,我们可以方便快捷的查找到符合条件的文件。但有时我们在程序设计中也需要这一功能,能否在自己的程序中实现呢?答案当然是肯定的。下面我们就来着手设计一个vb程序中的文件搜索器。
首先,进入vb中,建立一个新的表单。在表单上建立一个驱动器列表框(drivelist),一个目录列表框(folderlist),一个检查框(subcheck),一个listview控件(filelist),两个文本框(filename,filesize)和两个按钮(cmdsearch,cmdexit)。需要注意的是listview 控件是 mscomctl.ocx 文件中一组 activex 控件的一部分。若要在应用程序中使用 listview 控件,必须将 mscomctl.ocx 文件添加到工程中。选择listview控件,点击鼠标右键,在弹出菜单中选择“属性”。在属性窗口的“列首”页中设置将要显示的列,连续按动“插入列”5次。排列好各控件的位置,然后加入以下代码:
option explicit dim filesys as scripting.filesystemobject
private sub cmdexit_click() end end sub
private sub drivelist_change() folderlist.path = drivelist end sub
private sub form_load() dim i as integer set filesys = new scripting.filesystemobject folderlist.path = left(drivelist.drive, 2) & "\" with filelist.columnheaders.item(1) .alignment = lvwcolumnleft .text = "文件名" .width = 2000 end with with filelist.columnheaders.item(2) .alignment = lvwcolumnright .text = "大小(kb)" .width = 1500 end with with filelist.columnheaders.item(3) .alignment = lvwcolumnleft .text = "类型" .width = 1500 end with with filelist.columnheaders.item(4) .alignment = lvwcolumnleft .text = "路径" .width = 2000 end with with filelist.columnheaders.item(5) .alignment = lvwcolumnleft .text = "修改时间" .width = 2000 end with end sub
private sub form_unload(cancel as integer) set filesys = nothing end sub
private sub cmdsearch_click() dim sfolderstart as scripting.folder set sfolderstart = filesys.getfolder(folderlist.path) filelist.listitems.clear addfiles sfolderstart if filelist.listitems.count = 0 then msgbox _ "没找到任何符合条件的文件!",vbokonly + vbinformation, "提示信息" end sub
private sub addfiles(sfoldersearch as scripting.folder) dim sfolder as scripting.folder dim sfile as scripting.file dim sngfilesize as single dim lngsize as long dim itm as listitem if subcheck.value = 1 then if sfoldersearch.subfolders.count then for each sfolder in sfoldersearch.subfolders addfiles sfolder next sfolder end if end if sngfilesize = filesize * 1000 for each sfile in sfoldersearch.files with sfile if .size >= sngfilesize and iif(filename.text < > "", _ instr(.name, filename.text) > 0, true) then set itm = filelist.listitems.add(text:=.name) lngsize = .size / 1000 with itm .subitems(1) = format(lngsize, "#,###") .subitems(2) = sfile.type .subitems(3) = sfile.parentfolder .subitems(4) = sfile.datelastmodified end with end if end with next sfile set itm = nothing set sfolder = nothing end sub 运行后,选择相应目录,再在filename文本框中输入要查找的文件名或文件名的一部分,然后再在filesize文本框中输入文件的大小,按下搜索按钮即可搜索到相应文件。当然,这只是个功能较为简单的文件搜索器,有兴趣的读者可以使用scripting.filesystemobject对象的属性为其添加一些更为有用的功能。
|
|
|
文章录入:杜斌 责任编辑:杜斌 |
|
上一篇文章: VB中使用数据窗体设计器插件 下一篇文章: 如何用VB访问外来数据库 |
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|