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

ASP 21NN 2年前 (2018-05-24) 0次浏览 已收录 0个评论 扫描二维码

硬盘文件的类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(“关键字不能为空
“)
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(“关键字不能包含/:|&
“)
Exit Function   ”如果包含有这个则退出
 end if
 ”多路径搜索
 dim i
 for i=0 to ubound(Folders)
   Call GetAllFile(Folders(i))  ”调用循环递归函数
 next
 Response.Write(“共搜索到“&Counter&”个结果”)
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,”{GetProperty(Content)}“)   ”设置关键字的显示颜色
”***************************该部分可以根据需要修改输出************************************
    OutPut=””&OutPut&”

 Response.Write(OutPut)  ”输出匹配的结果
”*************************************可修改部分结束**************************************
 ColorOn=1    ”加入计数器的数目
  else
    ColorOn=0
  end if
  Set objReg=Nothing
End Function
End Class
”************************结束类SearchFile**********************
%>

Media搜索

<form name="form1" method="post" action="”>
关键词:

 
 
 高级搜索帮助

<%
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(“
费时:”&(timer()-st)*1000&”毫秒”)
end if</%

%>


本文:硬盘文件搜索代码(ASP编程类) 本文链接:https://www.21nn.cn/biancheng/asp/2308.html 本站所以图片、文章仅限用于学习和研究目的; 不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站信息来自网络,版权争议与本站无关。 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 如有侵权请邮件与我们联系处理。i@ki4.cn
喜欢 (0)
[1353713598@qq.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址