كيفية استخدام FSO للبحث في ملفات القرص الصلب؟ هل تعرف كيفية البحث في ملفات القرص الصلب عن FSO؟ إذا لم تفهمها بعد ، فاتبع محرر Foxin وسأفهمه.
<٪@language = "vbscript" codepage = "936" ٪>
<٪
قاتمة شارع
St = Timer ()
'****************************************************************
'************* Search Hard Disk File Class SearchFile ************
'************ طريقة الاتصال: **************
"************ SET NEWSSEARCH = إعلان بحث جديد" **************
'************ newsearch.folder = "f:+e:" "مرر في مصدر البحث ****************
'************ newsearch.keyword = "compilation" "الكلمة الرئيسية *********
"************ newsearch.search" ابدأ البحث ************
"************ set newssearch = لا شيء" نهاية *************
'****************************************************************
SearchFile فئة
تمرير مسار المجلد المطلق ، يستخدم Multipath + علامة للاتصال ، لا توجد مسافات
الكلمة الرئيسية الخافتة "الكلمات الرئيسية المارة
يعرّف Dimfso 'المتغيرات العالمية
يحدد العداد الخافت المتغيرات العالمية ، وعدد نتائج البحث
'*************** الاتهام ****************************************
sub class_initialize الخاص
SET OBJFSO = server.createObject ("scripting.filesystemObject")
العداد = 0 'تهيئة العداد
نهاية الفرعية
'*********************************************************************
sub class_terminate الخاص
تعيين objfso = لا شيء
نهاية الفرعية
'****************** عضو عام ، طريقة تسمى *********************************
البحث عن وظيفة
مجلدات = تقسيم (مجلدات ، "+") "تحويل إلى صفيف
الكلمة الرئيسية = trim (الكلمة الرئيسية) "قم بإزالة المساحات قبل وبعد
إذا كانت الكلمة الرئيسية = "" ثم
Response.write ("<font color = 'red'> لا يمكن أن تكون الكلمة الرئيسية فارغة </font> <br/>")
وظيفة الخروج
إنهاء إذا
فقط حدد ما إذا تم تضمين الشخصيات غير القانونية
Flag = Instr (الكلمة الرئيسية ، "") أو Instr (الكلمة الرئيسية "،/")
Flag = Flag أو Instr (الكلمة الرئيسية ":")
Flag = Flag أو Instr (الكلمة الرئيسية ، "|")
Flag = Flag أو Instr (الكلمة الرئيسية ، "&")
إذا كان العلم ، فلا يمكن أن تحتوي الكلمة الرئيسية على /: | &
استجابة. write ("<font color = 'red'> لا يمكن أن تحتوي الكلمة الرئيسية على/: | & </font> <br/>")
وظيفة الخروج "إذا تم تضمين هذا ، خروج
إنهاء إذا
البحث متعدد المسار
خافت أنا
لأني = 0 إلى أوبوند (مجلدات)
استدعاء getAllfile (المجلدات (i))
التالي
Response.write ("تم العثور على نتائج <font color = 'red'>" & counter & "</font>)
وظيفة نهاية
'******************************************
وظيفة خاصة getallfile (مجلد)
Dim OBJFD ، OBJFS ، objff
تعيين OBJFD = objfso.getfolder (مجلد)
تعيين OBJFS = objfd.subfolders
تعيين OBJFF = OBJFD.FILES
السفر عبر المجلدات الفرعية
Dim Strfdname 'إعلان اسم المجلد الفرعي
'************ زيارة المجلدات الفرعية *******
عند استئناف الخطأ التالي
لكل Onedir في OBJFs
strfdname = onedir.name
لا يتم تضمين مجلد النظام في اجتياز
إذا كان strfdname <> "config.msi" eqv strfdname <> "إعادة تدوير" eqv strfdname <> "recycler" eqv strfdname <> "معلومات حجم النظام" ثم
sfn = مجلد و "" و strfdname 'المسار المطلق
استدعاء GetAllfile (SFN) "عودة المكالمات
إنهاء إذا
التالي
قاتمة stlname
'************ فيديو إلى الملف **********
لكل طلقة في Objff
strflname = onefile.name
'Desktop.ini و Folder.htt ليسوا في نطاق العمود
إذا كان strflname <> "desktop.ini" eqv stlname <> "folder.htt"
fn = المجلد و "" و stflname
عداد = عداد+لونون (FN)
إنهاء إذا
التالي
'******************************
أغلق كل مثيل كائن
تعيين OBJFD = لا شيء
تعيين OBJFS = لا شيء
تعيين OBJFF = لا شيء
وظيفة نهاية
'************************* توليد نمط مطابق ****************************************
الوظيفة الخاصة createpattern (الكلمة الرئيسية)
createpattern = الكلمة الرئيسية
createpattern = استبدال (createpattern ، "." ، ".")
CreatePattern = استبدال (CreatePattern ، "+" ، "+")
createpattern = استبدال (createpattern ، "(" ، "(")
createpattern = استبدال (createpattern ، ")" ، ")"))
createpattern = استبدال (createpattern ، "[" ، "[")
CreatePattern = استبدال (createpattern ، "]" ، "]")
CreatePattern = استبدال (createpattern ، "{" ، "{")
CreatePattern = استبدال (CreatePattern ، "}" ، "}")
CreatePattern = استبدال (CreatePattern ، "*" ، "[^//]*") '*تطابق الرقم
CreatePattern = استبدال (createpattern ، "؟" ، "[^//] {1}") '؟ عدد المطابقة
CreatePattern = "(" & createpattern & ")+" "المباراة الشاملة
وظيفة نهاية
'****************************** Search and Color Words **************************
وظيفة خاصة Coloron (اسم الملف)
قاتمة objreg
تعيين OBJREG = جديد regexp
objreg.pattern = createpattern (الكلمة الرئيسية)
objreg.ignorecase = صحيح
objreg.global = صحيح
retval = objreg.test (اسم الملف)
إذا كان Retval ثم
الإخراج = objreg.replace (اسم الملف ، "<font color = '#ff0000'> $ 1 </font>") "قم بتعيين لون العرض للكلمة الرئيسية
'**************************** هذا الجزء يمكن أن يعدل الإخراج حسب الحاجة ****************************************************
output = "<a href = '#'>" & output و "</a> <br/>"
استجابة. write (الإخراج) 'نتيجة مطابقة الإخراج
'*********************************************************************
COLORON = 1 'عدد العدادات المضافة
آخر
coloron = 0
إنهاء إذا
تعيين OBJREG = لا شيء
وظيفة نهاية
الطبقة النهائية
'************************** END CLASS SEARCHFILE *********************
٪>
<html>
<head>
<meta http-equiv = "content-type" content = "text/html ؛ charset = gb2312">
<title> www.csdn.com.cn </title>
</head>
<body>
<form name = "form1" method = "post" Action = "<٪ = request.ServerVariables (" path_info ") ٪>">
الكلمات الرئيسية:
<input name = "الكلمة الرئيسية" type = "text" id = "keyword">
<إدخال type = "إرسال" name = "إرسال" value = "Search">
<a href = "help.htm" target = "_ blank"> مساعدة البحث المتقدمة </a>
</form>
<٪
الكلمة الرئيسية قاتمة
الكلمة الرئيسية = request.form ("الكلمة الرئيسية")
إذا كانت الكلمة الرئيسية <> "" ثم
تعيين newssearch = جديد SearchFile
newsearch.folders = "E: Media+F:"
newsearch.keyword = الكلمة الرئيسية
newssearch.search
تعيين Newsearch = لا شيء
Response.write ("<br/> يستهلك الوقت:" & (Timer ()-ST)*1000 و "MS")
إنهاء إذا
٪>
</body>
</html>
إذا كنت تعتقد أن طريقة FSO هذه للبحث عن ملفات القرص الصلب مفيدة لك ، فيرجى إعطائي إبهامًا. إذا كنت ترغب في عرض المزيد من المحتوى ذي الصلة ، فيرجى اتباع قناة WONEW Technology. شكرا لك على دعمك!