用ASP實現遠程批量檔案改名

來源:互聯網
上載者:User

對於網站設計者而言,時常處理大批量的檔案是難免的,特別是圖片和一些文本文字檔,更是經常處理。而由於網站大量檔案的關係,對於同類型檔案的命名,往往就直接採用帶有一定規律的遞增數字來作為檔案名稱,比如,我們常見的圖片檔案的命名,就時常採用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:\test1\"

 ' 將處理檔案數量設定為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>"

%>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.