fso遍历文件夹内所有文件和子文件夹
作者:cmscn 日期:2009-08-13
fso遍历文件夹内所有文件和子文件夹,递归调用,并计算所有文件总大小(这里当然可以直接用folder的size方法直接或得),新手可以看看~
<%
response.charset="gb2312"
response.buffer=true
dim fso,fod,fil,o_c,f_c,siz,i
o_c=0:f_c=0:siz=0
set fso=server.createobject("scripting.filesystemobject")
pathStr=request.querystring("path")
if trim(pathStr)="" then
response.write "未指定path参数!"
response.end
end if
temp_path=server.mappath(pathStr) '要遍历的文件夹路径
if not fso.folderexists(temp_path) then
response.write temp_path&" 不存在!"
response.end
end if
response.write temp_path&"(<font color=red>1</font>)<br />"
call getcount(temp_path,1)
response.write temp_path&",共有文件夹 "&o_c&" 个,文件 "&f_c&" 个,总大小为"&formatnumber(siz/1024/1024,2)&"MB!<br />"
'函数名getcount
'作用:遍历文件夹内的所有文件和子文件
'参数:path--要遍历的文件夹,i--文件/文件夹级数
function getcount(path,i)
t_path=path
set fod=fso.getfolder(t_path)
o_c=o_c+fod.subfolders.count
f_c=f_c+fod.files.count
'遍历文件夹中的文件
if fod.files.count>0 then
for each fi in fod.files
for j=1 to i
response.write "- - "
next
response.write t_path&"\"&fi.name&"(<font color=red>"&i+1&"</font>)<br />"&vbcrlf
siz=siz+fi.size
next
end if
'遍历文件夹中的子文件夹,并回归调用
if fod.subfolders.count>0 then
for each ff in fod.subfolders
for j=1 to i
response.write "- - "
next
response.write t_path&"\"&ff.name&"(<font color=red>"&i+1&"</font>)<br />"&vbcrlf
response.flush '输出
c_fod=t_path&"\"&ff.name
call getcount(c_fod,i+1)
next
end if
end function
%>
评论: 0 | 引用: 0 | 查看次数: 424
发表评论