بالنسبة لمصممي مواقع الويب، لا مفر من معالجة كميات كبيرة من الملفات من وقت لآخر، وخاصة الصور وبعض الملفات النصية، والتي تتم معالجتها بشكل متكرر. نظرًا للعدد الكبير من الملفات الموجودة على موقع الويب، غالبًا ما تتم تسمية الملفات من نفس النوع باستخدام أرقام متزايدة مع قواعد معينة. على سبيل المثال، غالبًا ما تتم تسمية ملفات الصور الشائعة لدينا باسم 1001.jpg، 1002. وتتمثل ميزة طريقة jpg في أنها لن تتكرر أسماء الملفات ومن السهل إدارتها. نقدم هنا على وجه التحديد طريقة بسيطة وسهلة لإعادة تسمية جميع الملفات في أي مجلد دفعة واحدة. وبطبيعة الحال، تتم زيادة أسماء الملفات عدديًا بعد إعادة التسمية وفقًا لاحتياجات مصمم موقع الويب.
نحن نستخدم ASP لتنفيذ الوظائف المذكورة أعلاه. تجدر الإشارة إلى أنه نظرًا لأن التصميم يتضمن عمليات الملفات ويستخدم كائن FileSystemObject، فيجب تنفيذ هذه الوظيفة على موقع ويب لديه أذونات تشغيل الملفات. اهتمام افتراضي عام: نظرًا لمتطلبات الأمان، قد لا يتم منح أذونات وجود الملف. هذا هو أول شيء يجب أن ننتبه إليه؛ بالإضافة إلى ذلك، في البرنامج التالي، سنقوم بتشغيل جميع الملفات الموجودة في المجلد المحدد strFromDir، طالما هذا هو الملف، بغض النظر عن نوع الملف، سيقوم البرنامج بإعادة تسمية الملفات الموجودة في المجلد. بالطبع، لن يتم تغيير نوع الملف. لن يتم حفظ الملفات المعاد تسميتها في المجلد الأصلي، ولكن سيتم نقلها إلى ملف new.strTargetDir، يرجى ملاحظة أننا نتحرك هنا، وليس النسخ، لذلك بعد العملية، لن تعد جميع الملفات الموجودة في المجلد الأصلي موجودة؛ ويستفيد البرنامج من الخصائص والميزات المتنوعة التي يوفرها كائن FileSystemObject، وهو كذلك من الواضح أن الأصدقاء الذين يبرمجون بلغات أخرى قد يشعرون بعمق الآن، فلنلقِ نظرة على رمز تنفيذ الوظيفة:
<% @LANGUAGE = VBSCRIPT %>.
<%خيار صريح%>
<%
'يقوم البرنامج التالي بإعادة تسمية الملفات الموجودة في مجلد على دفعات وينقل كافة الملفات إلى مجلد جديد؛
الاستجابة.اكتب "<html>" & VbCrLf & "<head>" & VbCrLf
الاستجابة.اكتب "<العنوان>إعادة تسمية الملف الدفعي</العنوان>" & VbCrLf
الاستجابة.اكتب "</head>" & VbCrLf & "<body>" & VbCrLf
"وصف متغير."
خافت gbolGoProcedure
خافت strFromDir 'المجلد المصدر
خافت strTargetDir 'المجلد الهدف
خافت objFS
خافت objRootFolder
خافت objFile
خافت strFileNameLen
خافت strPrevFileName
خافت strFileExt "امتداد الملف
خافت strFileNameCount
خافت strNewFileName
Dim strRealCount 'عدد الملفات التي تمت معالجتها
gbolGoProcedure = False
' إذا تم النقر على زر البدء، قم بإجراء المعالجة التالية
إذا (Request.Form("GoButton")) = "ابدأ"، ثم
'حدد المجلد المصدر والمجلد الهدف
strFromDir = "D:test"
strTargetDir = "D:test1"
' اضبط عدد الملفات المراد معالجتها على 0
strRealCount = 0
Set objFS = Server.CreateObject("Scripting.FileSystemObject")
Set 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 = لين (objFile.Name)
إذا كان Mid (objFile.Name,(strFileNameLen - 3),1) = "."
strFileExt = حق (objFile.Name، 4)
آخر
strFileExt = حق (objFile.Name، 5)
End If
strPrevFileName = objFile.Name
strNewFileName = strFileNameCount & strFileExt
objFile.نقل strTargetDir & strNewFileName
Response.اكتب "الملف المصدر: " &strFromDir&strPrevFileName & " > نقل وإعادة تسمية: " &strTargetDir& strNewFileName & "<br>" & vbCrLF
strFileNameCount = strFileNameCount + 1
strRealCount = strRealCount + 1
التالية
. اكتب "<p><b> تمت معالجتها بشكل إجمالي: " & (strRealCount) & " files</B>" & vbCrLf
Set objRootFolder = لا شيء
تعيين objFS = لا شيء
نهاية
حقيقية
إذاكان 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>"
%>