對於網站設計者而言
時常處理大批量的文件是難免的
特別是圖片和一些文本文本文件
更是經常處理
而由於網站大量文件的關系
對於同類型文件的命名
往往就直接采用帶有一定規律的遞增數字來作為文件名
比如
我們常見的圖片文件的命名
就時常采用
jpg
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:\test
\
將處理文件數量設置為
strRealCount =
Set objFS = Server
CreateObject(
Scripting
FileSystemObject
)
Set objRootFolder = objFS
GetFolder(strTargetDir)
文件名的具體設置
這裡設置為
表明文件名將從
開始
逐步遞增
可以根據需要設置
strFileNameCount =
For each objFile in objRootFolder
Files
對於特定的文件
不進行處理
可以根據需要設置
If objFile
Name =
Thumbs
db
then strFileNameCount = StrFileNameCount
strFileNameCount = strFileNameCount +
Next
Set objRootFolder = objFS
GetFolder(strFromDir)
For each objFile in objRootFolder
Files
strFileNameLen = Len (objFile
Name)
If Mid (objFile
Name
(strFileNameLen
)
) =
then
strFileExt = right(objFile
Name
)
Else
strFileExt = right(objFile
Name
)
End If
strPrevFileName = objFile
Name
strNewFileName = strFileNameCount & strFileExt
objFile
Move strTargetDir & strNewFileName
Response
Write
源文件:
&strFromDir&strPrevFileName &
> 移動並改名為:
&strTargetDir& strNewFileName &
<br>
& vbCrLF
strFileNameCount = strFileNameCount +
strRealCount = strRealCount +
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=form
name=
form
>
) & 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>
%>
From:http://tw.wingwit.com/Article/Network/201311/29889.html