如何使用FSO搜索硬盘文件

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

<%

dim st

st=timer()

'*************************************************************

'*************搜索硬盘文件的类SearchFile *************

'*************调用方法: *************

'*************Set newsearch=new SearchFile '声明 *************

'*************newsearch.Folder="F:+E:"'传入搜索源*************

'*************newsearch.keyword="汇编" '关键词*************

'*************newsearch.Search '开始搜索*************

'*************Set newsearch=Nothing '结束*************

'*************************************************************

Class SearchFile

dim Folders '传入绝对路径,多路径使用+号连接,不能有空格

dim keyword '传入关键词

dim objFso '定义全局变量

dim Counter '定义全局变量,搜索结果的数目

'*****************初始化**************************************

Private Sub Class_Initialize

Set objFso=Server.CreateObject("Scripting.FileSystemObject")

Counter=0 '初始化计数器

End Sub

'************************************************************

Private Sub Class_Terminate

Set objFso=Nothing

End Sub

'**************公有成员,调用的方法***************************

Function Search

Folders=split(Folders,"+") '转化为数组

keyword=trim(keyword) '去掉前后空格

if keyword="" then

Response.Write("<font color='red'>关键字不能为空</font><br/>")

exit Function

end if

'判断是否包含非法字符

flag=instr(keyword,"") or instr(keyword,"/")

flag=flag or instr(keyword,":")

flag=flag or instr(keyword,"|")

flag=flag or instr(keyword,"&")

if flag then '关键字中不能包含/:|&

Response.Write("<font color='red'>关键字不能包含/:|&</font><br/>")

Exit Function '如果包含有这个则退出

end if

'多路径搜索

dim i

for i=0 to ubound(Folders)

Call GetAllFile(Folders(i)) '调用循环递归函数

next

Response.Write("共搜索到<font color='red'>"&Counter&"</font>个结果")

End Function

'***************历遍文件和文件夹******************************

Private Function GetAllFile(Folder)

dim objFd,objFs,objFf

Set objFd=objFso.GetFolder(Folder)

Set objFs=objFd.SubFolders

Set objFf=objFd.Files

'历遍子文件夹

dim strFdName '声明子文件夹名

'*********历遍子文件夹******

on error resume next

For Each OneDir In objFs

strFdName=OneDir.Name

'系统文件夹不在历遍之列

If strFdName<>"Config.Msi" EQV strFdName<>"RECYCLED" EQV strFdName<>"RECYCLER" EQV strFdName<>"System Volume Information" Then

SFN=Folder&""&strFdName '绝对路径

Call GetAllFile(SFN) '调用递归

End If

Next

dim strFlName

'**********历遍文件********

For Each OneFile In objFf

strFlName=OneFile.Name

'desktop.ini和folder.htt不在列取范围

If strFlName<>"desktop.ini" EQV strFlName<>"folder.htt" Then

FN=Folder&""&strFlName

Counter=Counter+ColorOn(FN)

End If

Next

'***************************

'关闭各对象实例

Set objFd=Nothing

Set objFs=Nothing

Set objFf=Nothing

End Function

'*********************生成匹配模式***********************************

Private Function CreatePattern(keyword)

CreatePattern=keyword

CreatePattern=Replace(CreatePattern,".",".")

CreatePattern=Replace(CreatePattern,"+","+")

CreatePattern=Replace(CreatePattern,"(","(")

CreatePattern=Replace(CreatePattern,")",")")

CreatePattern=Replace(CreatePattern,"[","[")

CreatePattern=Replace(CreatePattern,"]","]")

CreatePattern=Replace(CreatePattern,"{","{")

CreatePattern=Replace(CreatePattern,"}","}")

CreatePattern=Replace(CreatePattern,"*","[^\/]*") '*号匹配

CreatePattern=Replace(CreatePattern,"?","[^\/]{1}") '?号匹配

CreatePattern="("&CreatePattern&")+" '整体匹配

End Function

'**************************搜索并使关键字上色*************************

Private Function ColorOn(FileName)

dim objReg

Set objReg=new RegExp

objReg.Pattern=CreatePattern(keyword)

objReg.IgnoreCase=True

objReg.Global=True

retVal=objReg.Test(FileName) '进行搜索测试,如果通过则上色并输出

if retVal then

OutPut=objReg.Replace(FileName,"<font color='#FF0000'>$1</font>") '设置关键字的显示颜色

'***************************该部分可以根据需要修改输出************************************

OutPut="<a href='#'>"&OutPut&"</a><br/>"

Response.Write(OutPut) '输出匹配的结果

'*************************************可修改部分结束**************************************

ColorOn=1 '加入计数器的数目

else

ColorOn=0

end if

Set objReg=Nothing

End Function

End Class

'************************结束类SearchFile**********************

%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>www.csdn.com.cn</title>

</head>

<body>

<form name="form1" method="post" action="<% =Request.ServerVariables("PATH_INFO")%>">

关键词:

<input name="keyword" type="text" id="keyword">

<input type="submit" name="Submit" value="搜索">

<a href="help.htm" target="_blank">高级搜索帮助</a>

</form>

<%

dim keyword

keyword=Request.Form("keyword")

if keyword<>"" then

Set newsearch=new SearchFile

newsearch.Folders="E:Media+F:"

newsearch.keyword=keyword

newsearch.Search

Set newsearch=Nothing

response.Write("<br/>费时:"&(timer()-st)*1000&"毫秒")

end if

%>

</body>

</html>

(0)

相关推荐

  • 如何使用FSO搜索硬盘文件

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <% dim st st=timer() '************************************************************* '*************搜索硬盘文件的类SearchFile ************* '*************调用方法: ************* '*************Set new

  • VBS调用WMI遍历搜索硬盘文件并计数的方法

    多年之前写的一个VBS调用WMI来遍历搜索硬盘文件,并计数的函数,今天整理网盘,看到了,发上来 核心代码: Function wmisfile(path_sf,justcnt) 'On Error Resume Next StrComputer = "." Set ObjWMIService = GetObject("winmgmts:\\" & StrComputer & "\root\cimv2") Set FileList

  • 硬盘文件搜索代码(ASP类)

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <% dim st st=timer() '************************************************************* '*************搜索硬盘文件的类SearchFile ************* '*************调用方法: ************* '*************Set new

  • Java并发(Runnable+Thread)实现硬盘文件搜索功能

    零.插播2020CSDN博客之星投票新闻 近日(1月11日-1月24日),2020CSDN博客之星评选正在火热进行中,作为码龄1年的小白有幸入选Top 200,首先很感谢CSDN官方把我选上,本来以为只是来凑热闹,看大佬们PK . 综合过去9天大佬们战况,前10名大佬基本坐得很稳,后期出现黑马发力,势不可挡,都在冲刺Top 20,有了微妙的变化,不得不令人佩服点赞!真正的实力可以看出,文章数量不重要,更重要的是质量!一切用数据说话,如图: 截至 2021-01-20 11:50:02 看了大佬的

  • VBS调用WMI实现搜索硬盘mp3文件

    复制代码 代码如下: strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colFiles = objWMIService. _ ExecQuery("Select *

  • vbscript脚本编程教程2利用fso来进行文件操作

    by sssa2000 我们来看一看怎么利用fso来进行文件操作.Fso时vbs里进行文件操作的核心.作为黑客,不管学习什么语言,对文件的操作都应该是要了如指掌的,所以请大家仔细学习. 不说废话,先看fso由哪几个对象组成: drive对象:包含储存设备的信息,包括硬盘,光驱,ram盘,网络驱动器 drives集合:提供一个物理和逻辑驱动器的列表 file  对象:检查和处理文件 files 集合:提供一个文件夹中的文件列表 folder对象:检查和处理文件夹 folders集合:提供文件夹中子

  • ASP编程入门进阶(十八):FSO组件之文件操作(上)

    FSO中除了可以对驱动器.文件夹的操作以外,功能最强大的就是对文件的操作了.它可以用来记数.内容管理.搜索还可生成动态HTML页面等等. 一.fso.OpenTextFile无需多说,fso.OpenTextFile就是打开某个文件了,一般情况之下是打开的txt文本文件.所以首先我们先建立一个txt文件,然后通过FSO来读取其中的内容. 1,info.txt name:cnbrucesex:male 建立了该文件,下面再做个ASP页面,当然最好两个文件是在同一目录下. 2,opentxt.asp

  • 批处理(bat)实现全盘搜索指定文件获取其完整路径方法大全

    废话不多说,直接上代码,额,想用的话,自己保存成bat文件即可. [方案一]for /f + dir @echo off rem 指定待搜索的文件 set "FileName=BatHome_Batcher.txt" echo 正在搜索,请稍候... for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do ( if exist %%a:\ ( for /f "delims=" %%b in ('

  • python开发之基于thread线程搜索本地文件的方法

    本文实例讲述了python开发之基于thread线程搜索本地文件的方法.分享给大家供大家参考,具体如下: 先来看看运行效果图: 利用多个线程处理搜索的问题,我们可以发现他很快.... 下面是代码部分: # A parallelized "find(1)" using the thread module. # This demonstrates the use of a work queue and worker threads. # It really does do more sta

  • python实现搜索本地文件信息写入文件的方法

    本文实例讲述了python实现搜索本地文件信息写入文件的方法.分享给大家供大家参考,具体如下: 主要功能: 在指定的盘符,如D盘,搜索出与用户给定后缀名(如:jpg,png)相关的文件,然后把搜索出来的信息(相关文件的绝对路径),存放到用户指定的文件(如果文件不存在,则建立相应的文件)中 先卡看运行效果吧: 运行效果的前部分: 运行效果的后部分: 写入信息后的文件: 代码部分: #在指定的盘符,如D盘,搜索出与用户给定后缀名(如:jpg,png)相关的文件 #然后把搜索出来的信息(相关文件的绝对

随机推荐