- <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
- <%
- dim st
- st=timer()
- '*************************************************************
- '*************搜索硬盘文件的类SearchFile *************
- '*************调用方法: *************
- '*************Set newsearch=new SearchFile '声明 *************
- '*************newsearch.Folder="F:+E:"'传入搜索源*************
- '*************newsearch.keyword="汇编" '关键词*************
- '*************newsearch.Search '开始搜索*************
- '*************Set newsearch=Nothing '结束*************
- '*************Copyright(c)醉雨梧桐小站 *************
- '*************http://btyz.51web.cn/ *************
- '*************************************************************
- 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>Media搜索</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>
硬盘文件搜索代码(ASP类)
2019-11-01 12:56asp代码网 ASP教程
硬盘文件搜索代码(ASP类)
延伸 · 阅读
- 2024-12-13大力士"魔山"硬拉举起282PB固态硬盘!重达45
- 2022-03-07详解linux添加硬盘分区挂载教程
- 2022-03-02Ubuntu挂载3T硬盘或大于2T磁盘的方法
- 2022-01-17详解Linux下挂载新硬盘方法
- 2022-01-12C#使用dir命令实现文件搜索功能示例
- 2022-01-11HDD硬盘在数据中心的持续价值
精彩推荐
- ASP教程
asp 采集实战代码
最近实在是太流行采集了,本人是不喜欢采集的,但对采集的原理我却很有兴趣进行研究,拿到了网上采集常用函数,对其进行了一番研究,并实战,结果...
- ASP教程
asp之基于adodb.stream的文件操作类
asp之基于adodb.stream的文件操作类...
- ASP教程
ASP常用函数:getpy()
ASP常用函数:getpy()...
- ASP教程
ASP.NET 数据源
数据源 一个 data sourse 控件与数据绑定的控件相互作用,并隐藏了复杂的数据的联编过程。这些是提供数据给 data bound 控件的工具,并且支持如插入,删除...
- ASP教程
asp Access数据备份,还原,压缩类代码
asp Access数据备份,还原,压缩类实现代码,大家可以参考下。...
- ASP教程
asp+javascript实现404页的处理转换
asp+javascript实现404页的处理转换...
- ASP教程
JScript中遍历Request表单参数集合的方法
这篇文章主要介绍了JScript中遍历Request表单参数集合的方法,本文以遍历Request.QueryString集合为例给出了实现代码,需要的朋友可以参考下...
- ASP教程
asp 标记字符串中指定字符变色不区分大小写
今天遇到这种问题,单纯的使用replace函数不行,他会改变原有的字符串的大小写,在网上找到相关的代码,自己备份下...