< %@LANGUAGE="VBSCRIPT " CODEPAGE="936"%>
<%
ディムセント
st=タイマー()
'************************************************ * ***********
'*************ハードディスクファイルを検索するクラス SearchFile *************
'******************呼び出し方法:*************
'*************Set newsearch=new SearchFile 'ステートメント******************
'******************newsearch.Folder="F:+E:"'受信検索ソース**************** **
'******************newsearch.keyword="コンパイル" 'キーワード******************
'*************newsearch.Search '****************** の検索を開始します
'******************newsearch=Nothing を設定 '終了*****************
'************************************************ * ***********
クラス検索ファイル
dim Folders '絶対パスを渡します。複数のパスを接続するには + 記号を使用します。スペースを含めることはできません。
dim キーワード 'キーワードを入力してください
dim objFso 'グローバル変数を定義する
dim Counter 'グローバル変数、検索結果の数を定義
'*****************初期化****************************** *******
プライベートサブクラス_初期化
Set objFso=Server.CreateObject("Scripting.FileSystemObject")
Counter=0 'カウンターを初期化します
エンドサブ
'************************************************ * ************
プライベートサブクラス_Terminate
objFso=Nothing を設定します
エンドサブ
'******************パブリックメンバー、呼び出しメソッド************************** **
機能検索
Folders=split(Folders,"+") '配列に変換
keyword=trim(keyword) '先頭と末尾のスペースを削除します
キーワード = "の場合、その後
Response.Write("<font color='red'>キーワードを空にすることはできません</font><br/>")
終了関数
終了する場合
'不正な文字が含まれているかどうかを判断する
flag=instr(キーワード,"") または instr(キーワード,"/")
flag=フラグまたはinstr(キーワード,":")
flag=フラグまたはinstr(キーワード,"|")
flag=フラグまたはinstr(キーワード,"&")
if フラグ then 'キーワードに /:|& を含めることはできません
Response.Write("<font color='red'>キーワードに /:|&</font><br/> を含めることはできません")
終了関数 'これが含まれている場合は終了
終了する場合
'複数パス検索
ディミ
for i=0 から ubound(Folders)
Call GetAllFile(Folders(i)) 'ループ再帰関数を呼び出します
次
Response.Write("合計 <font color='red'>"&Counter&"</font> の結果が見つかりました")
終了機能
'******************ファイルとフォルダーをスキャン*************************** * **
プライベート関数 GetAllFile(フォルダー)
暗い objFd、objFs、objFf
objFd=objFso.GetFolder(フォルダー)を設定します。
objFs=objFd.SubFolders を設定します
objFf=objFd.Files を設定します
'サブフォルダーを走査する
dim strFdName 'サブフォルダー名を宣言します
'************サブフォルダを走査******
エラー時は次から再開
objFs の各 OneDir について
strFdName=OneDir.Name
'システムフォルダーは走査されません
If strFdName<>"Config.Msi" EQV strFdName<>"RECYCLED" EQV strFdName<>"RECYCLER" EQV strFdName<>"システム ボリューム情報" then
SFN=Folder&""&strFdName '絶対パス
Call GetAllFile(SFN) '再帰呼び出し
終了の場合
次
dim strFlName
'**********ファイルを走査**********
objFf の 1 つのファイルごとに
strFlName=OneFile.Name
'desktop.iniとfolder.httはリストに含まれていません
strFlName<>"desktop.ini" EQV strFlName<>"folder.htt" の場合
FN=フォルダ&""&strFlName
カウンタ=カウンタ+カラーオン(FN)
終了の場合
次
「******************************」
'各オブジェクトインスタンスを閉じる
objFd=何も設定しない
objFs=Nothing を設定します
objFf=何も設定しない
終了機能
'************************マッチングパターンを生成********************* ******** **********
プライベート関数 CreatePattern(キーワード)
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,"*","[^\/]*") '* 一致
CreatePattern=Replace(CreatePattern,"?","[^\/]{1}") '?
CreatePattern="("&CreatePattern&")+" '全体一致
終了機能
'******************************キーワードの検索と色付け*************** *** *********
プライベート関数 ColorOn(ファイル名)
薄暗いobjReg
objReg=新しい正規表現を設定します
objReg.Pattern=CreatePattern(キーワード)
objReg.IgnoreCase=True
objReg.Global=True
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=何も設定しない
終了機能
終了クラス
'************************エンドクラス SearchFile********************** **
%>
<html>
<頭>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>www.knowsky.com</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>
<%
暗いキーワード
キーワード=リクエスト.フォーム("キーワード")
if キーワード<>"" then
newsearch=新しい検索ファイルを設定します
newsearch.Folders="E:メディア+F:"
newsearch.keyword=キーワード
新しい検索.検索
newsearch=Nothing を設定します
response.Write("<br/>時間がかかります: "&(timer()-st)*1000&"ms")
%>
の場合は終了
</body>
</html>