递归查询文件名.vbs
'======================================================================================
'dim ws,fso,f,fd,files,tmpname,url,result,preFix
set ws=createobject("wscript.shell")
set fso = CreateObject("Scripting.FileSystemObject")
set fd = fso.getfolder(ws.currentdirectory)
set files=fd.files
'生成前缀
result=ws.currentdirectory
result =replace(result ,"\","+")
result =replace(result ,".","_")
result =replace(result ,":","=")
'建立一个文本,存储文件的名字
result= result & "_" & "fileinfos.txt"
set resultFile=fso.createtextfile(result,2,ture)
'开始工作
s=ShowFolderList(ws.currentdirectory,resultFile)
MsgBox "操作完成!文件信息保存于:" & result
'=============================================================================
'--------------------------------------------
'遍历一个路径下的所有文件及文件夹
'参数:folderspec 表示文件路径 例如:d:\javascript
'---------------------------------------------
Function ShowFolderList(folderspec,logFile)
Dim fso, f, f1, fc, s
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(folderspec) Then '判断文件夹是否存在
s="文件夹不存在"
else
Set f = fso.GetFolder(folderspec) '返回与指定的路径中某文件夹相应的 Folder对象
Set fc = f.files
For Each f1 in fc
s=s & chr(34) & folderspec & "\" & f1.name & chr(34)& vbCr
logFile.writeline chr(34) & folderspec & "\" & f1.name & chr(34)
Next
Set ff=f.SubFolders
For Each f2 in ff
s=s&ShowFolderList(f2.Path,logFile) '递归所有子文件夹里的文件
Next
If b="" Then a=" "
End If
ShowFolderList = s
End Function
网上样例: VBS递归文件夹里的所有文件.vbs
Dim a
a="" '空格
'-------------------------
'作者:菜菜
'QQ:544795916
'遍历所有磁盘及所有文件及文件夹
'---------------------------
Function ShowDriveList()
Dim fso, d, dc, s, n
Set fso = CreateObject("Scripting.FileSystemObject")
Set dc = fso.Drives '回由本地机器上所有 Drive 对象组成的 Drives 集合
For Each d in dc
s = s & d.DriveLetter & " :<br>"
s=s&"-----驱动类型:"
Select Case d.DriveType
Case 0:s =s& "未知<br>"
Case 1:s =s& "可移动<br>"
Case 2:s =s& "固定<br>"
Case 3:s =s& "网络<br>"
Case 4:s =s& "CD-ROM<br>"
Case 5:s =s& "RAM 磁盘<br>"
End select
If d.IsReady Then
s = s & "-----总容量:" & FormatNumber(d.TotalSize/(1024*1024), 0) & "M<br>"
s = s & vbCrLf
s = s & "-----可用空间:" & FormatNumber(d.AvailableSpace/(1024*1024), 0) & "M<br>"
s=s&"-----文件<br>"
s=s&ShowFolderList(d.DriveLetter&":\")&"<br>"
End If
s = s &"<hr>"
Next
ShowDriveList = s
End Function
'--------------------------------------------
'遍历一个路径下的所有文件及文件夹
'参数:folderspec 表示文件路径 例如:d:\javascript
'---------------------------------------------
Function ShowFolderList(folderspec)
Dim fso, f, f1, fc, s
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(folderspec) Then '判断文件夹是否存在
s="文件夹不存在"
else
Set f = fso.GetFolder(folderspec) '返回与指定的路径中某文件夹相应的 Folder对象
Set fc = f.files
a=a&" "
For Each f1 in fc
s = s &a&f1.name&" 文件大小:"&f1.Size
s = s & "<BR>"
Next
Set ff=f.SubFolders
For Each f2 in ff
b=f2.name
s = s &a&f2.name&" 文件大小:"&f2.Size
s = s & "<BR>"
s=s&ShowFolderList(f2.Path) '递归所有子文件夹里的文件
Next
If b="" Then a=" "
End If
ShowFolderList = s
End Function
'Document.write ShowDriveList() '遍历系统所有文件
document.write ShowFolderList("D:\javascript") '遍历路径下的所有文件