打印本文 打印本文  关闭窗口 关闭窗口  
在VB中直接用ODBCAPI访问数据库
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 14:44:56  文章录入:杜斌  责任编辑:杜斌

  从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对象的属性为其添加一些更为有用的功能。 
打印本文 打印本文  关闭窗口 关闭窗口