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

<%@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>

(0)

相关推荐

  • 硬盘文件搜索代码(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遍历搜索硬盘文件并计数的方法

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

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

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

  • Java 读取类路径下的资源文件实现代码

    Java 读取类路径下的资源文件实现代码 一.工具类代码ResourceLoadUtil.java import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; public class ResourceLoadUtil { /** * @par

  • java使用RandomAccessFile类基于指针读写文件实例代码

    java API中提供了一个基于指针操作实现对文件随机访问操作的类,该类就是RandomAccessFile类,该类不同于其他很多基于流方式读写文件的类.它直接继承自Object. public class RandomAccessFile extends Objectimplements DataOutput, DataInput, Closeable{...} 1.使用该类时可以指定对要操作文件的读写模式. 第一种模式是只读模式,第二种模式是读写模式.在创建该类实例时指定. @Test pu

  • python仿evething的文件搜索器实例代码

    今天看到everything搜索速度秒杀windows自带的文件管理器,所以特地模仿everything实现了文件搜索以及打开对应文件的功能,首先来一张搜索对比图. 这是evething搜索效果: 这是自己实现的效果: 主要功能就是python的os库的文件列表功能,sqllite创建表,插入数据以及模糊搜索,然后就是tkiner实现的界面功能.全部代码贴出来做一次记录,花费一天时间踩坑. # coding=utf-8 import tkinter as tk import tkinter.me

  • 易语言按时间范围搜索指定类型文件的代码

    按时间搜索文件代码 .版本 2 .支持库 iext .程序集 窗口程序集1 .子程序 _按钮_搜索_被单击 文件搜索 ("C:", "*.*") .子程序 文件搜索 .参数 欲寻找的目录, 文本型, , 如:C:,表示C盘,记得C字后面两点一定要写 .参数 欲寻找的文件名, 文本型, , 如果寻找全部文件可以填入*.*或*.txt只找txt文件 .局部变量 局部_子目录, 文本型 .局部变量 局部_文件名, 文本型 .局部变量 局部_文件时间, 日期时间型 .局部变

  • asp.net+js 实现无刷新上传解析csv文件的代码

    前阵子工作中用到,贴上代码,仅保留上传有关的代码,发现code其实很少. 上传页面html/js 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xht

  • ASP 类 Class入门 推荐

    Class 声明 声明一个类的名字,就是定义一些变量,属性,方法来组成一个类.我们常常看到别的程序语言中中都有类的说明,PHP,VB,C++,这个在VBScript中的类的说明,我是第一次听到,我们的日常工作就是网站开发,在这个里面多多少少搞出点经验,像模像样也能自诩为"内行",所以我就来分享一下我所知道的这个新的东东.我们来看看下面的这个代码吧!(window2000+IIS5.0通过测试) 类的定义1 yyh.asp<%''声明一个名为yh的类 Class yh Privat

随机推荐