FSO เป็นตัวควบคุมสำหรับการดำเนินการไฟล์ใน Microsoft ASP ดังนั้นบรรณาธิการของช่องทางใหม่ที่ไม่ถูกต้องจะแบ่งปันการวิเคราะห์อย่างละเอียดของรหัส FSO
ฟังก์ชั่นที่แก้ไขเนื้อหาเฉพาะไฟล์โดยใช้ FSO
functionfsochange (ชื่อไฟล์, เป้าหมาย, สตริง)
dimobjfso, objcountfile, fileTempData
setObjfso = server.createObject ("scripting.filesystemobject")
setObjcountFile = objfso.opentextfile (server.mappath (ชื่อไฟล์), 1, true)
fileTempData = objcountfile.readall
objcountfile.close
fileTempData = แทนที่ (fileTempData, เป้าหมาย, สตริง)
setObjcountFile = objfso.createTextFile (Server.Mappath (ชื่อไฟล์), จริง)
objcountfile.writefileTempdata
objcountfile.close
setObjcountFile = ไม่มีอะไร
setObjfso = ไม่มีอะไร
endfunction
ฟังก์ชั่นที่ใช้ FSO เพื่ออ่านเนื้อหาไฟล์
functionfsofileread (ชื่อไฟล์)
dimobjfso, objcountfile, fileTempData
setObjfso = server.createObject ("scripting.filesystemobject")
setObjcountFile = objfso.opentextfile (server.mappath (ชื่อไฟล์), 1, true)
fsofileread = objcountfile.readall
objcountfile.close
setObjcountFile = ไม่มีอะไร
setObjfso = ไม่มีอะไร
endfunction
ฟังก์ชั่นที่ใช้ FSO เพื่ออ่านบรรทัดของไฟล์
functionfsolinedit (ชื่อไฟล์, ผ้าลินิน)
iflinenum
dimfso, f, temparray, tempcnt
setfso = server.createObject ("Scripting.FilesYstemObject")
ifnotfso.fileexists (server.mappath (ชื่อไฟล์)) thenexitfunction
setf = fso.opentextfile (server.mappath (ชื่อไฟล์), 1)
ifnotf.atendofstreamthen
tempcnt = f.readall
f.close
setf = ไม่มีอะไร
เทมเพลต = แยก (Tempcnt, Chr (13) & Chr (10))
iflinenum> ubund (temparray)+1 จากนั้น
exitfunction
อื่น
fsolinedit = temparray (linenum-1)
endif
endif
endfunction
ฟังก์ชั่นที่ใช้ FSO เพื่อเขียนบรรทัดหนึ่งของไฟล์
functionfsolineWrite (ชื่อไฟล์, ผ้าลินิน, linecontent)
iflinenum
dimfso, f, temparray, tempcnt
setfso = server.createObject ("Scripting.FilesYstemObject")
ifnotfso.fileexists (server.mappath (ชื่อไฟล์)) thenexitfunction
setf = fso.opentextfile (server.mappath (ชื่อไฟล์), 1)
ifnotf.atendofstreamthen
tempcnt = f.readall
f.close
เทมเพลต = แยก (Tempcnt, Chr (13) & Chr (10))
iflinenum> ubund (temparray)+1 จากนั้น
exitfunction
อื่น
เทมเพลต (linenum-1) = linecontent
endif
Tempcnt = เข้าร่วม (Temparray, Chr (13) & Chr (10))
setf = fso.createtextfile (server.mappath (ชื่อไฟล์), จริง)
f.writetempcnt
endif
f.close
setf = ไม่มีอะไร
endfunction
ฟังก์ชั่นเพื่อเพิ่มบรรทัดใหม่ของไฟล์โดยใช้ FSO
functionfsoappline (ชื่อไฟล์, linecontent)
dimfso, f
setfso = server.createObject ("Scripting.FilesYstemObject")
ifnotfso.fileexists (server.mappath (ชื่อไฟล์)) thenexitfunction
setf = fso.opentextfile (server.mappath (ชื่อไฟล์), 8,1)
F.Writechr (13) & Chr (10) & linecontent
f.close
setf = ไม่มีอะไร
endfunction
ฟังก์ชั่นที่อ่านบรรทัดสุดท้ายของไฟล์
functionfsolastline (ชื่อไฟล์)
dimfso, f, temparray, tempcnt
setfso = server.createObject ("Scripting.FilesYstemObject")
ifnotfso.fileexists (server.mappath (ชื่อไฟล์)) thenexitfunction
setf = fso.opentextfile (server.mappath (ชื่อไฟล์), 1)
ifnotf.atendofstreamthen
tempcnt = f.readall
f.close
setf = ไม่มีอะไร
เทมเพลต = แยก (Tempcnt, Chr (13) & Chr (10))
fsolastline = temparray (ubund (temparray))
endif
endfunction
FSO แทนที่อักขระของไฟล์ที่ระบุ
รหัสโปรแกรม:
'FSO แทนที่อักขระของไฟล์ที่ระบุ
functionfsolineedit (ชื่อไฟล์, เป้าหมาย, สตริง)
dimobjfso, objcountfile, fileTempData
setObjfso = server.createObject ("scripting.filesystemobject")
setObjcountFile = objfso.opentextfile (server.mappath (ชื่อไฟล์), 1, true)
fileTempData = objcountfile.readall
objcountfile.close
fileTempData = แทนที่ (fileTempData, เป้าหมาย, สตริง)
setObjcountFile = objfso.createTextFile (Server.Mappath (ชื่อไฟล์), จริง)
objcountfile.writefileTempdata
objcountfile.close
setObjcountFile = ไม่มีอะไร
setObjfso = ไม่มีอะไร
endfunction
'response.writefsolineedit ("test.txt", "โลก", "พรุ่งนี้เป็นวันที่ดีที่จะไป")
ลบไฟล์
รหัสโปรแกรม:
'ลบไฟล์
FunctionDelfile (ชื่อไฟล์)
iffilename "" แล้ว
setfso = server.createObject ("Scripting.FilesYstemObject")
iffso.fileexists (ชื่อไฟล์) จากนั้น
fso.deletefilefilename
endif
setfso = ไม่มีอะไร
endif
endfunction
ตรวจสอบว่ามีไฟล์อยู่หรือไม่
รหัสโปรแกรม:
'เพียงแค่ตรวจสอบว่ามีไฟล์อยู่หรือไม่
FunctionReportFilestatus (FileSpec)
dimfso, ผงชูรส
setfso = createObject ("Scripting.filesystemObject")
ถ้า (fso.fileexists (fileSpec)) แล้ว
msg = filespec & "มีอยู่"
อื่น
msg = fileSpec & "notexist"
endif
ReportFilestatus = msg
endfunction
ฟังก์ชั่นที่แก้ไขเนื้อหาเฉพาะไฟล์โดยใช้ FSO
รหัสโปรแกรม:
'ใช้ FSO เพื่อแก้ไขฟังก์ชันเนื้อหาเฉพาะไฟล์
functionfsochange (ชื่อไฟล์, เป้าหมาย, สตริง)
dimobjfso, objcountfile, fileTempData
setObjfso = server.createObject ("scripting.filesystemobject")
setObjcountFile = objfso.opentextfile (server.mappath (ชื่อไฟล์), 1, true)
fileTempData = objcountfile.readall
objcountfile.close
fileTempData = แทนที่ (fileTempData, เป้าหมาย, สตริง)
setObjcountFile = objfso.createTextFile (Server.Mappath (ชื่อไฟล์), จริง)
objcountfile.writefileTempdata
objcountfile.close
setObjcountFile = ไม่มีอะไร
setObjfso = ไม่มีอะไร
endfunction
ฟังก์ชั่นที่ใช้ FSO เพื่อเขียนบรรทัดหนึ่งของไฟล์
รหัสโปรแกรม:
'ใช้ FSO เพื่อเขียนฟังก์ชั่นที่มีไฟล์บางบรรทัด
functionfsolineWrite (ชื่อไฟล์, ผ้าลินิน, linecontent)
iflinenum
dimfso, f, temparray, tempcnt
setfso = server.createObject ("Scripting.FilesYstemObject")
ifnotfso.fileexists (server.mappath (ชื่อไฟล์)) thenexitfunction
setf = fso.opentextfile (server.mappath (ชื่อไฟล์), 1)
ifnotf.atendofstreamthen
tempcnt = f.readall
f.close
temparray = split (tempcnt, chr (13) & chr (10))
iflinenum> ubound (temparray)+1 จากนั้น
exitfunction
อื่น
เทมเพลต (linenum-1) = linecontent
endif
Tempcnt = เข้าร่วม (Temparray, Chr (13) & Chr (10))
setf = fso.createtextfile (server.mappath (ชื่อไฟล์), จริง)
f.writetempcnt
endif
f.close
setf = ไม่มีอะไร
endfunction
โปรแกรมที่สร้างไดเรกทอรี หากมีไดเรกทอรีหลายระดับให้สร้างทีละระดับ
รหัสโปรแกรม:
'โปรแกรมที่สร้างไดเรกทอรี หากมีไดเรกทอรีหลายระดับให้สร้างทีละระดับ
functioncreatedir (byvallocalpath)
onerrorresumenext
localpath = แทนที่ (localpath, "/", "/")
setFileObject = server.createObject ("scripting.filesystemobject")
patharr = split (localpath, "/")
path_level = ubound (patharr)
fori = 0topath_level
ifi = 0thenPathtmp = Patharr (0) & "/" Elsepathtmp = Pathtmp & Patharr (i) & "/"
cPath = ซ้าย (pathtmp, len (pathtmp) -1)
ifnotFileObject.folderexists (cPath) thenfileobject.createfoldercpath
ต่อไป
setFileObject = ไม่มีอะไร
iferr.number0 จากนั้น
createDir = false
err.lear
อื่น
createDir = true
endif
endfunction
นี่คือคุณสมบัติที่ไม่เป็นทางการ แต่เจ๋งมากเหล่านี้:
คุณสมบัติ FSO ที่ไม่ค่อยเข้าใจ
GetSpecialFoldermethod ส่งคืนเส้นทางของโฟลเดอร์ Windows เฉพาะ: ไดเรกทอรีการติดตั้ง Windows; ไดเรกทอรีระบบ Windows; Windows Directory FSO.getSpecialFolder ([0,1, OR2])
GetTempNameMethod ส่งคืนไฟล์หรือชื่อไดเรกทอรีที่สร้างขึ้นแบบสุ่มซึ่งใช้เมื่อต้องการข้อมูลชั่วคราว
GetAbsolutePathnamemethod ส่งคืนเส้นทางสัมบูรณ์ไปยังโฟลเดอร์ (คล้ายกับ Server.mappath)
ตัวอย่างเช่น fso.getabsolutepathname ("ภูมิภาค") จะส่งคืนผลลัพธ์ที่คล้ายกับต่อไปนี้: "c: mydocsmyfolderegion"
GetExtensionNameMethod ส่งคืนส่วนขยายของส่วนสุดท้ายของเส้นทาง
(ตัวอย่างเช่น: fso.getextensionName ("C: docsest.txt") จะส่งคืน txt)
getBasenameandGetParentFoldermethods ส่งคืนโฟลเดอร์หลักของส่วนสุดท้ายของเส้นทาง
(ตัวอย่างเช่น: fso.getParentFolder ("c: docsmydocs") จะส่งคืน 'เอกสาร')
DriveSproperty ส่งคืนคอลเลกชันของไดรฟ์ที่มีอยู่ในท้องถิ่นทั้งหมดสำหรับการสร้างอินเทอร์เฟซผู้ใช้ที่เหมือนเบราว์เซอร์ทรัพยากร
เมื่อใช้ฟังก์ชั่นข้างต้นคุณควรสร้างรหัสสำหรับการจัดการข้อผิดพลาด เพราะหากไม่มีพารามิเตอร์ที่ต้องการข้อมูลที่ลำบากจะถูกสร้างขึ้น
ข้างต้นเป็นการวิเคราะห์โดยละเอียดของรหัส FSO ฉันเชื่อว่าคุณได้เรียนรู้ทั้งหมด สำหรับเนื้อหาที่เกี่ยวข้องเพิ่มเติมโปรดดำเนินการต่อเพื่อให้ความสนใจกับช่องเทคโนโลยี Wuxin