對于網站設計者而言,時常處理大批量的文件是難免的,特別是圖片和一些文本文本文件,更是經常處理。而由于網站大量文件的關系,對于同類型文件的命名,往往就直接采用帶有一定規律的遞增數字來作為文件名,比如,我們常見的圖片文件的命名,就時常采用1001.jpg、1002.jpg這種方式,這樣的好處是文件名不會重復,容易管理。這里,我們專門介紹一種簡單易行的方法來實現對任意文件夾下的所有文件進行批量改名,當然,改名以后的文件名,是根據網站設計者的需要,按照數字進行遞增的。
我們使用ASP來實現以上功能,需要注意的是,因為設計到文件操作,使用FileSystemObject對象,所以,該功能的實現要在具有文件操作權限的網站進行。一般的虛擬注意,考慮到安全要求,可能不會給予文件存在權限,這是我們首先需要注意的;另外,在下面的程序中,我們將操作指定文件夾strFromDir中的所有文件,只要是這個文件夾中的文件,無論文件類型如何,程序都會對其進行文件改名操作,當然,文件類型是不會進行改變的,改名以后的文件,將不在保存在原文件夾,而是移動到新的文件夾strTargetDir,注意,我們這里是移動,不是拷貝,所以,進行操作以后,原文件夾中所有的文件都將不存在;程序很好的利用了FileSystemObject對象提供的各種屬性和特征,實現的時候簡單明了,使用其他語言編程的朋友可能會感受深刻;現在,我們就來看功能實現代碼:
<% @LANGUAGE = VBSCRIPT %> <%Option Explicit%> <% '以下程序批量改名文件夾中的文件名,并將所有文件移動到新的文件夾; Response.Write "<html>" & VbCrLf & "<head>" & VbCrLf Response.Write "<title>批量文件改名</title>" & VbCrLf Response.Write "</head>" & VbCrLf & "<body>" & VbCrLf ' 變量說明 Dim gbolGoProcedure Dim strFromDir '源文件夾 Dim strTargetDir '目標文件夾 Dim objFS Dim objRootFolder Dim objFile Dim strFileNameLen Dim strPrevFileName Dim strFileExt '文件擴展名 Dim strFileNameCount Dim strNewFileName Dim strRealCount '處理的文件數量 gbolGoProcedure = False ' 如果點擊了開始按鈕,進行以下處理 If (Request.Form("GoButton")) = " 開 始 " then ' 指定源文件夾、目標文件夾 strFromDir = "D:test" strTargetDir = "D:est1" ' 將處理文件數量設置為0 strRealCount = 0 Set objFS = Server.CreateObject("Scripting.FileSystemObject") Set objRootFolder = objFS.GetFolder(strTargetDir) '文件名的具體設置,這里設置為100001,表明文件名將從100001 '開始,逐步遞增,可以根據需要設置; strFileNameCount = 100001 For each objFile in objRootFolder.Files '對于特定的文件,不進行處理,可以根據需要設置; If objFile.Name = "Thumbs.db" then strFileNameCount = StrFileNameCount - 1 strFileNameCount = strFileNameCount + 1 Next Set objRootFolder = objFS.GetFolder(strFromDir) For each objFile in objRootFolder.Files strFileNameLen = Len (objFile.Name) If Mid (objFile.Name,(strFileNameLen - 3),1) = "." then strFileExt = right(objFile.Name, 4) Else strFileExt = right(objFile.Name, 5) End If strPrevFileName = objFile.Name strNewFileName = strFileNameCount & strFileExt objFile.Move strTargetDir & strNewFileName Response.Write "源文件: " &strFromDir&strPrevFileName & " > 移動并改名為: " &strTargetDir& strNewFileName & "<br>" & vbCrLF strFileNameCount = strFileNameCount + 1 strRealCount = strRealCount + 1 Next Response.Write "<p><b>一共處理: " & (strRealCount) & " 個文件</B>" & vbCrLf Set objRootFolder = Nothing Set objFS = Nothing gbolGoProcedure = True End If If gbolGoProcedure Then 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="" 開 始 "" ID=""GoButton"" name=""GoButton"">") & vbCrLf Response.Write("</form>") & vbCrLf Response.Write("<p><b>點擊按鈕對文件進行批量移動和改名</b></center>") & VbCrLf End If Response.Write "</body>" & VbCrLf & "</html>" %> |
作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
※以上資訊由網路資料整理而成,若有遺誤概以來源為準,本站不負任何相關責任。
※如果您認為網站上資訊侵犯了您的版權,請告訴我們
按這裡,我們將即時將您的版權資料移除。