FSO 遍历文件夹,按时间排序,可以删除


网上看到的一个代码改的,之前不能删除,现在改了一下就可以删除了。
<%
setfso=CreateObject("Scripting.FileSystemObject")
ifrequest("Action")="Del"then
whichfile=server.mappath(Request("FileName"))
Setthisfile=fso.GetFile(whichfile)
thisfile.DeleteTrue
endif
%>
<%
Response.Write"<tablecellspacing=1cellpadding=0align=centerbgcolor=#666666bordercolor=#000000border=0>"
Response.Write"<trbgcolor=#33CCCC>"
Response.Write"<td>ID</td>"
Response.Write"<td>文件</td>"
Response.Write"<td>文件大小</td>"
Response.Write"<td>创建日期</td>"
Response.Write"<td>操作</td>"
Response.Write"</tr>"

FoldPath=Server.MapPath("../html/")
setfso=Server.CreateObject("Scripting.FileSystemObject")

'得到目录下所有文件的信息集合
setfsoFolder=fso.GetFolder(FoldPath)
SetGetFiles=fsoFolder.files

'定义数组,和变量
DimFileArr(),i,p,Max,OrderBy,Total,MoveAddRessStart,MoveAddRessEnd,PCount,PFSize,APFSize
Max=20'默认的显示条数
orderBy="DESC"'排序方式,DESC倒序,ASC正序


'得到大于0的页码
P=Request.QueryString("P")
IFP<>""Then
IfIsNumeric(P)Then
IFCint(P)>0Then
P=Cint(P)
Else
P=1
EndIf
Else
P=1
EndIF
Else
P=1
EndIF


'定义了文件总数的数组,0为文件名,1为日期时间,2为文件大小
ReDimFileArr(Getfiles.count-1,2)
i=0
ForEachfInGetFiles
IFFilterName(Lcase(f.Name))Then

'取出文件名
FileArr(i,0)=f.Name

'取出文件建立时间
FileArr(i,1)=f.DateCreated
FileArr(i,2)=f.Size
APFSize=APFSize+f.Size
i=i+1
EndIF
Next


'得到总页数
Total=i
IFTotalModMax=0Then
PCount=ToTal/Max
Else
PCount=Total\Max+1
EndIF
IFP>PCountThenP=PCount


'对文件进行排序按日期,OrderBy等于DESC倒序,OrderBy等于ASC正序
ForOne=0Toi-1
ForTwo=0Toi-1
IFUcase(OrderBy)="DESC"Then
orderByConditions=(CDate(FileArr(One,1))>CDate(FileArr(Two,1)))
ElseIFUcase(OrderBy)="ASC"Then
orderByConditions=(CDate(FileArr(One,1))<CDate(FileArr(Two,1)))
EndIF
IForderByConditionsThen
TempName=FileArr(Two,0)
TempTime=FileArr(Two,1)
TempSize=FileArr(Two,2)
FileArr(Two,0)=FileArr(One,0)
FileArr(Two,1)=FileArr(One,1)
FileArr(Two,2)=FileArr(One,2)
FileArr(One,0)=TempName
FileArr(One,1)=TempTime
FileArr(One,2)=TempSize
EndIF
Next
Next


'得到当前页的文件位置,开始地址如果为第一页则其实位置是0,因为数组的下限是0
MoveAddRessStart=P*Max-Max

IF(i-1-Max)>MoveAddRessStartThen
MoveAddRessEnd=MoveAddRessStart+Max-1
Else
MoveAddRessEnd=(i-1)-1
EndIF
'Response.writeTotal

'显示列表
Forj=MoveAddRessStartToMoveAddRessEnd
'Response.WriteFileArr(j,2)&filearr(j,0):response.end
Response.Write"<tr><tdbgcolor=#ffffff>"&j&"</td><tdbgcolor=#ffffff>"&FileArr(j,0)&"</td><tdbgcolor=#ffffff>"&SizeTo(FileArr(j,2))&"</td><tdbgcolor=#ffffff>"&FileArr(j,1)&"</td><td><ahref='?Action=Del&FileName=../html/"&FileArr(j,0)&"'>删除</a></td></tr>"
PFSize=PFSize+FileArr(j,2)
Next
Response.Write"<tr><tdbgcolor=#ffffffcolspan=4align=right>"
Response.Write"当前页有"&MoveAddRessEnd-MoveAddRessStart+1&"个文件"
Response.Write"占用空间"&SizeTo(PFSize)&""
IFP>1Then
Response.Write"<ahref=?p=1>首页</a><ahref=?p="&p-1&">上一页</a>" _fcksavedurl="?p=1>首页</a><ahref=?p="&p-1&">上一页</a>"" _fcksavedurl="?p=1>首页</a><ahref=?p="&p-1&">上一页</a>""
Else
Response.Write"首页上一页"
EndIF
IFP<PCountThen
Response.Write"<ahref=?p="&P+1&">下一页</a><ahref=?p="&PCount&">尾页</a>"
Else
Response.Write"下一页尾页"
EndIF
Response.WriteP&"/"&PCount&"页"
Response.Write"共有"&Total&"个文件"
Response.Write"共"&SizeTo(APFSize)&""
Response.Write"</td></tr>"
Response.WRite"</table>"

'过滤文件扩展名
FunctionFilterName(FileName)
DimFilter_Expansion_Name,ExpansionName
Filter_Expansion_Name="|asp|htm|jpg|jpeg|gif|swf|bmp|png|"'过滤取得文件夹中的文件类型,如果只填写htm则只取htm文件,注意文件本身不会出现在这个表中,但会计算在总数中
'得到扩展名
ForTp=Len(FileName)To1Step-1
IFMid(FileName,Tp,1)="."Then
ExitFor
Else
ExpansionName=Mid(FileName,Tp,1)&ExpansionName
EndIF
Next
IFInstr(1,Filter_Expansion_Name,"|"&ExpansionName&"|")>0Then
FilterName=True
Else
FilterName=False
EndIf
EndFunction

'转换文件大小转换
FunctionSizeTo(PFSize)
SizeTo=0
IFPFSize>(1024*1024*1024)And(PFSize/1024/1024/1024)>0Then
'GB转换
SizeTo=FormatNumber(PFSize/1024/1024/1024,2)&"GB"
ElseIFPFSize>(1024*1024)And(PFSize/1024/1024)>0Then
'MB转换
SizeTo=FormatNumber(PFSize/1024/1024,2)&"MB"
ElseIFPFSize>1024And(PFSize/1024)>0Then
'KB转换
SizeTo=FormatNumber(PFSize/1024,2)&"KB"
ElseIFPFSize>0Then
'byte转换
SizeTo=FormatNumber(PFsize,2)&"B"
Else
SizeTo=0&"B"
EndIF
EndFunction

%>
http://www.corange.cn/archives/2008/03/356.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值