สำหรับนักออกแบบเว็บไซต์ การประมวลผลไฟล์จำนวนมากในบางครั้งนั้นหลีกเลี่ยงไม่ได้ โดยเฉพาะรูปภาพและไฟล์ข้อความบางไฟล์ซึ่งมีการประมวลผลบ่อยครั้ง เนื่องจากไฟล์บนเว็บไซต์มีจำนวนมาก ไฟล์ประเภทเดียวกันจึงมักถูกตั้งชื่อโดยใช้ตัวเลขที่เพิ่มขึ้นโดยมีกฎเกณฑ์บางประการ ตัวอย่างเช่น ไฟล์รูปภาพทั่วไปของเรามักตั้งชื่อว่า 1001.jpg, 1002 ข้อดีของวิธี jpg ก็คือ ชื่อไฟล์จะไม่ซ้ำกันและง่ายต่อการจัดการ ที่นี่ เราขอแนะนำวิธีที่ง่ายและสะดวกในการเปลี่ยนชื่อไฟล์ทั้งหมดในโฟลเดอร์ใดๆ เป็นกลุ่ม แน่นอนว่าชื่อไฟล์หลังจากการเปลี่ยนชื่อจะเพิ่มขึ้นเป็นตัวเลขตามความต้องการของนักออกแบบเว็บไซต์
เราใช้ ASP เพื่อใช้ฟังก์ชันข้างต้น ควรสังเกตว่าเนื่องจากการออกแบบเกี่ยวข้องกับการดำเนินการกับไฟล์และใช้วัตถุ FileSystemObject การใช้งานฟังก์ชันนี้จึงต้องดำเนินการบนเว็บไซต์ที่มีสิทธิ์ดำเนินการกับไฟล์ ความสนใจเสมือนทั่วไป: เมื่อพิจารณาถึงข้อกำหนดด้านความปลอดภัย อาจไม่ได้รับสิทธิ์ในการมีอยู่ของไฟล์ นี่เป็นสิ่งแรกที่เราต้องใส่ใจ นอกจากนี้ เราจะดำเนินการกับไฟล์ทั้งหมดในโฟลเดอร์ที่ระบุ strFromDir ตราบใดที่ เป็นไฟล์นี้ ไม่ว่าไฟล์จะเป็นประเภทใดก็ตามโปรแกรมจะทำการเปลี่ยนชื่อไฟล์ในโฟลเดอร์นั้นแน่นอนว่าประเภทไฟล์จะไม่ถูกเปลี่ยนอีกต่อไป โฟลเดอร์ใหม่ strTargetDir โปรดทราบว่าเรากำลังย้ายมาที่นี่ ไม่ใช่การคัดลอก ดังนั้นหลังจากการดำเนินการ ไฟล์ทั้งหมดในโฟลเดอร์ดั้งเดิมจะไม่มีอยู่อีกต่อไป โปรแกรมใช้ประโยชน์จากคุณสมบัติและคุณสมบัติต่างๆ ที่ได้รับจากวัตถุ FileSystemObject และเป็น ง่ายต่อการนำไปใช้ แน่นอนว่าเพื่อนๆ ที่ทำโปรแกรมในภาษาอื่นอาจรู้สึกลึกซึ้ง ตอนนี้เรามาดูโค้ดการใช้งานฟังก์ชันกัน:
<% @LANGUAGE = VBSCRIPT %>
<%ตัวเลือกที่ชัดเจน%">
-
'โปรแกรมต่อไปนี้เปลี่ยนชื่อไฟล์ในโฟลเดอร์เป็นชุดและย้ายไฟล์ทั้งหมดไปยังโฟลเดอร์ใหม่
การตอบสนองเขียน "<html>" & VbCrLf & "<head>" & VbCrLf
Response.Write "<title>การเปลี่ยนชื่อไฟล์แบทช์<//title>" & VbCrLf
การตอบสนองเขียน "</head>" & VbCrLf & "<body>" & VbCrLf
'คำอธิบายตัวแปร
Dim gbolGoProcedure
Dim strFromDir 'โฟลเดอร์ซอร์ส'
Dim strTargetDir 'โฟลเดอร์เป้าหมาย'
objFS สลัว
ติ่ม objRootFolder
ติ่ม objFile
Dim strFileNameLen
Dim strPrevFileName
Dim strFileExt 'นามสกุลไฟล์
หรี่ strFileNameCount
Dim strNewFileName
Dim strRealCount 'จำนวนไฟล์ที่ประมวลผล
gbolGoProcedure = False
'หากคลิกปุ่มเริ่ม ให้ดำเนินการดังต่อไปนี้
ถ้า (Request.Form("GoButton")) = "Start" ดังนั้น
'ระบุโฟลเดอร์ต้นทางและโฟลเดอร์เป้าหมาย
strFromDir = "D:test"
strTargetDir = "D:test1"
' ตั้งค่าจำนวนไฟล์ที่จะประมวลผลเป็น 0
strRealCount = 0
ตั้ง objFS = Server.CreateObject("Scripting.FileSystemObject")
ตั้ง objRootFolder = objFS.GetFolder(strTargetDir)
'การตั้งค่าเฉพาะของชื่อไฟล์ที่ตั้งไว้ที่ 100001 ระบุว่าชื่อไฟล์จะเปลี่ยนจาก 100001
'เริ่ม ค่อยๆ เพิ่มขึ้น และสามารถตั้งค่าได้ตามต้องการ
strFileNameCount = 100001
สำหรับแต่ละ objFile ใน objRootFolder.Files
'สำหรับไฟล์บางไฟล์ จะไม่มีการประมวลผลและสามารถตั้งค่าได้ตามต้องการ
ถ้า objFile.Name = "Thumbs.db" ดังนั้น strFileNameCount = StrFileNameCount - 1
strFileNameCount = strFileNameCount + 1
ค่าถัดไป
objRootFolder = objFS.GetFolder(strFromDir)
สำหรับแต่ละ objFile ใน objRootFolder.Files
strFileNameLen = Len (objFile.Name)
ถ้า Mid (objFile.Name,(strFileNameLen - 3),1) = "." แล้ว
strFileExt = ขวา (objFile.Name, 4)
อื่น
strFileExt = ขวา (objFile.Name, 5)
สิ้นสุดถ้า
strPrevFileName = objFile.Name
strNewFileName = strFileNameCount & strFileExt
objFile.Move strTargetDir & strNewFileName
Response.Write "ไฟล์ต้นฉบับ: " &strFromDir&strPrevFileName & " > ย้ายและเปลี่ยนชื่อ: " &strTargetDir& strNewFileName & "<br><" & vbCrLF
strFileNameCount = strFileNameCount + 1
strRealCount = strRealCount + 1
ถัดไป
เขียน "<p><b> ประมวลผลทั้งหมด: " & (strRealCount) & " files</B">" & vbCrLf
Set objRootFolder = ไม่มีเลย
ตั้ง objFS = ไม่มีเลย
gbolGoProcedure = True
End ถ้า
ถ้า gbolGoProcedure แล้ว
Response.Write("<p><b>การเคลื่อนย้ายไฟล์เป็นกลุ่มและเปลี่ยนชื่อ</b><") & vbCrLf
Else
Response.Write("<center><br><form method=""post"" action=""FileNameConverter.asp"" ID=form1 name=""form1"">") & vbCrLf
Response.Write("<input type=""SUBMIT"" value="" Start"" ID=""GoButton"" name=""GoButton"">") & vbCrLf
Response.Write("</form>") & vbCrLf
Response.Write("<p><b>คลิกปุ่มเพื่อย้ายและเปลี่ยนชื่อไฟล์</b></center>") & VbCrLf
สิ้นสุดหาก
ตอบกลับเขียน "</body">" & VbCrLf & "</html>"
%>