asp โฟลเดอร์พิเศษบางโฟลเดอร์ไม่สามารถแสดงได้อย่างสมบูรณ์ แต่สามารถลบออกได้ผ่านเส้นทาง unc แต่หลักฐานคือต้องทราบเส้นทางที่แน่นอน
ยังมีบางกรณีที่ไม่สามารถแสดงปัญหานี้ได้ ฉันดู msdn แล้วและดูเหมือนจะไม่เห็นวิธีแก้ปัญหาที่ดีกว่านี้ ฉันเลิกทำการวิจัยต่อไปในขณะนี้ .
ขั้นแรก ให้แนบ bat เพื่อสร้างไดเร็กทอรีที่มีรูปแบบไม่ถูกต้อง คัดลอกและบันทึกโค้ดต่อไปนี้เป็น a.bat:
คัดลอกรหัสรหัสดังต่อไปนี้:
เอ็มดี aux//
เอ็มดีคอม1//
เอ็มดี com2//
เอ็มดีพรน//
เอ็มดีคอน//
MD ไม่มีค่า//
md จุด...//
md onedot..//
รหัสโปรแกรม
คัดลอกรหัสรหัสดังต่อไปนี้:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
-
ตัวเลือกที่ชัดเจน
response.charset = "UTF-8"
session.codepage = 65001
เซสชั่น.หมดเวลา = 1440
เซิร์ฟเวอร์สคริปต์หมดเวลา = 9999
-
'ชื่อ: คลาสรายการไดเรกทอรี
'ผู้เขียน: อี้ปิน
วันที่: 28-4-2553
'URL:
'คำอธิบาย: คลาสรายการไดเร็กทอรี รองรับชื่อไดเร็กทอรีที่มีรูปแบบไม่ถูกต้อง
-
คลาส FsoCls
เอกชน
สาธารณะ FsoObj
คลาสย่อยส่วนตัว_เริ่มต้น
ตั้งค่า Fso=CreateObject("Scripting.FileSystemObject")
ตั้งค่า FsoObj=Fso
จบหมวดย่อย
Class_Terminate ย่อยส่วนตัว
ตั้งค่า Fso=ไม่มีอะไร
ตั้งค่า FsoObj=ไม่มีอะไร
จบหมวดย่อย
ฟังก์ชั่น IsFolderExists (FolderPath)
ถ้า fso.FolderExists(FolderPath) แล้ว
IsFolderExists = จริง
อื่น
IsFolderExists = เท็จ
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
ฟังก์ชั่น FolderItem (ByVal FolderDir)
ถ้า Instr(FolderDir,":/")>0 แล้ว
FolderDir="//?/"&FolderDir&"/"
อื่น
FolderDir="//?/"&Server.MapPath(FolderDir)&"/"
สิ้นสุดถ้า
ถ้า IsFolderExists(FolderDir) = False แล้ว
FolderItem=เท็จ
ออกจากฟังก์ชัน
จบถ้า
Dim FolderObj, รายการโฟลเดอร์, F, i
ผม=1
ตั้งค่า FolderObj=Fso.GetFolder(FolderDir)
ตั้งค่า FolderList=FolderObj.SubFolders
FolderItem="จำนวนไดเรกทอรีทั้งหมด:"&FolderObj.SubFolders.Count&"<hr>" & vbcrlf
FolderItem=FolderItem&"จำนวนไฟล์ทั้งหมด:"&FolderObj.Files.count&"<hr>" & vbcrlf
สำหรับแต่ละ F ใน FolderList
'การตอบสนองเขียน F.ShortName
'Response.Write (instr(1,F.ShortName,"~",1))
ถ้า IsFolderExists(FolderDir&F.Name) = True จากนั้น Response.Write ("T<br>" & vbcrlf)
If(instr(1,F.Name,".",0)>0) จากนั้น
Response.เขียน("T")
F.Name=Replace(F.Name,".","-")
จบถ้า
FolderItem=FolderItem&i&"├─Folder→"&F.Name&"<br>" & vbcrlf
ฉัน=ฉัน+1
ต่อไป
ตั้งค่า FolderList=ไม่มีอะไร
ตั้งค่า FolderObj=ไม่มีอะไร
ฟังก์ชันสิ้นสุด
จบคลาส
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn">
<หัว>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>คลาสรายการไดเร็กทอรีรองรับชื่อไดเร็กทอรีที่มีรูปแบบไม่ถูกต้อง</title>
</หัว>
<ร่างกาย>
-
Dim F: ตั้งค่า F = FsoCls ใหม่
Response.write F.FolderItem("/")
-
</ร่างกาย>
</html>