< %@LANGUAGE="VBSCRIPT " CODEPAGE="936"%>
<%
희미한 거리
st=타이머()
'************************************************ * ***********
'*************하드디스크 파일 검색을 위한 Class SearchFile *************
'********************통화 방법: *************
'*************새 검색 설정=새 검색 파일 '문******************
'********************newsearch.Folder="F:+E:"'들어오는 검색 소스**************** **
'********************newsearch.keyword="편집" '키워드******************
'************newsearch.Search' 검색 시작******************
'********************새로운 검색=아무것도 설정하지 않음 '종료****************
'************************************************ * ***********
클래스 검색파일
희미한 폴더 '절대 경로를 전달하고 + 기호를 사용하여 여러 경로를 연결하며 공백이 없어야 합니다.
희미한 키워드 '입력 키워드
희미한 objFso '전역 변수 정의
Dim Counter '전역변수, 검색결과 개수 정의
'*****************초기화******************************** *******
비공개 하위 클래스_초기화
objFso=Server.CreateObject("Scripting.FileSystemObject") 설정
Counter=0 '카운터 초기화
서브 끝
'************************************************ * ************
비공개 하위 클래스_종료
objFso=아무것도 설정하지 않음
서브 끝
'********************일반회원, 호출방법************************** **
기능 검색
Folders=split(Folders,"+") '배열로 변환
키워드=trim(keyword) '선행 및 후행 공백 제거
키워드=""인 경우
Response.Write("<font color='red'>키워드는 비워둘 수 없습니다</font><br/>")
종료 기능
종료하면
'잘못된 문자가 포함되어 있는지 확인
flag=instr(키워드,"") 또는 instr(키워드,"/")
플래그=플래그 또는 instr(키워드,":")
flag=플래그 또는 instr(keyword,"|")
flag=플래그 또는 instr(키워드,"&")
if flag then '키워드에는 /:|&를 포함할 수 없습니다.
Response.Write("<font color='red'>키워드에는 /:|&</font><br/>"를 포함할 수 없습니다.
종료 기능 '이 항목이 포함되어 있으면 종료합니다.
종료하면
'다중 경로 검색
디미
i=0에서 ubound(폴더)까지
Call GetAllFile(Folders(i)) '루프 재귀 함수 호출
다음
Response.Write("총 <font color='red'>"&Counter&"</font> 결과가 발견되었습니다.")
기능 종료
'********************파일 및 폴더 트래버스****************************** * **
전용 함수 GetAllFile(폴더)
희미한 objFd,objFs,objFf
objFd=objFso.GetFolder(폴더) 설정
objFs=objFd.SubFolders 설정
objFf=objFd.Files 설정
'하위 폴더 탐색
희미한 strFdName '하위 폴더 이름 선언
'************하위 폴더 트래버스******
오류 발생 시 다음 재개
objFs의 각 OneDir에 대해
strFdName=OneDir.Name
'시스템 폴더는 탐색되지 않습니다.
strFdName<>"Config.Msi" EQV strFdName<>"RECYCLED" EQV strFdName<>"RECYCLER" EQV strFdName<>"시스템 볼륨 정보"인 경우
SFN=Folder&""&strFdName '절대 경로
GetAllFile(SFN) 호출 '재귀 호출
종료 조건
다음
희미한 strFlName
'************파일 탐색**********
objFf의 각 OneFile에 대해
strFlName=OneFile.Name
'desktop.ini 및 폴더.htt는 목록에 포함되어 있지 않습니다.
strFlName<>"desktop.ini" EQV strFlName<>"folder.htt"인 경우
FN=폴더&""&strFl이름
카운터=카운터+ColorOn(FN)
종료 조건
다음
'********************************
'각 개체 인스턴스를 닫습니다.
objFd=아무것도 설정하지 않음
objFs=아무것도 설정하지 않음
objFf=아무것도 설정하지 않음
기능 종료
'************************일치 패턴 생성************************ ******** **********
비공개 함수 CreatePattern(키워드)
CreatePattern=키워드
CreatePattern=바꾸기(CreatePattern,".",".")
CreatePattern=바꾸기(CreatePattern,"+","+")
CreatePattern=바꾸기(CreatePattern,"(","(")
CreatePattern=바꾸기(CreatePattern,")",")")
CreatePattern=바꾸기(CreatePattern,"[","[")
CreatePattern=바꾸기(CreatePattern,"]","]")
CreatePattern=바꾸기(CreatePattern,"{","{")
CreatePattern=바꾸기(CreatePattern,"}","}")
CreatePattern=Replace(CreatePattern,"*","[^\/]*") '* 일치
CreatePattern=Replace(CreatePattern,"?","[^\/]{1}") '? 일치
CreatePattern="("&CreatePattern&")+" '전체 일치
기능 종료
'********************************검색 및 색상 키워드**************** *** *********
개인 함수 ColorOn(파일 이름)
희미한 objReg
objReg=new RegExp 설정
objReg.Pattern=CreatePattern(키워드)
objReg.IgnoreCase=참
objReg.Global=참
retVal=objReg.Test(FileName) '통과되면 검색 테스트, 색상 및 출력을 수행합니다.
retVal이면
OutPut=objReg.Replace(FileName,"<font color='#FF0000'>$1</font>") '키워드 표시 색상 설정
'********************************이 부분은 필요에 따라 수정될 수 있으며 출력************ ****** *********************
OutPut="<a href='#'>"&OutPut&"</a><br/>"
Response.Write(OutPut) '일치하는 결과를 출력
'************************************수정 가능한 부분 끝******** ******************************
ColorOn=1 '추가된 카운터 수
또 다른
컬러온=0
종료하면
objReg=아무것도 설정하지 않음
기능 종료
수업 종료
'************************클래스 검색 파일 종료********************** **
%>
<html>
<머리>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>www.knowsky.com</title>
</head>
<본문>
<form name="form1" method="post" action="<% =Request.ServerVariables("PATH_INFO")%>">
키워드:
<입력 이름="키워드" type="텍스트" id="키워드">
<input type="submit" name="제출" value="검색">
<a href="help.htm" target="_blank">고급 검색 도움말</a>
</form>
<%
희미한 키워드
키워드=Request.Form("키워드")
키워드<>""이면
newsearch=new SearchFile 설정
newsearch.Folders="E:미디어+F:"
newsearch.keyword=키워드
신규검색.검색
newsearch=아무것도 설정하지 않음
response.Write("<br/>시간 소모: "&(timer()-st)*1000&"ms")
%>
이면 종료
</body>
</html>