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



网上看到的一个代码改的,之前不能删除,现在改了一下就可以删除了。
<%
set fso=CreateObject("Scripting.FileSystemObject")
        if request("Action")="Del" then
                whichfile=server.mappath(Request("FileName")) 
                Set thisfile = fso.GetFile(whichfile) 
                thisfile.Delete True
        end if
%>
<%
Response.Write "<table cellspacing=1 cellpadding=0 align=center bgcolor=#666666 bordercolor=#000000 border=0>"
Response.Write  "<tr bgcolor=#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/") 
    set fso = Server.CreateObject("Scripting.FileSystemObject")

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

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

    '得到大于0的页码
    P = Request.QueryString("P")
    IF P <> "" Then 
        If IsNumeric(P) Then
            IF Cint(P) > 0 Then 
                P = Cint(P)
            Else
                P = 1
            End If
        Else
            P = 1
        End IF
    Else
        P = 1
    End IF


    '定义了文件总数的数组,0为文件名,1为日期时间,2为文件大小
    ReDim FileArr(Getfiles.count-1,2)
    i = 0
    For Each f In GetFiles 
        IF FilterName(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
        End IF
    Next


    '得到总页数
    Total=i
    IF Total Mod Max = 0 Then 
        PCount = ToTal / Max
    Else
        PCount = Total / Max + 1
    End IF
    IF P > PCount Then P = PCount


    '对文件进行排序按日期,OrderBy等于DESC倒序,OrderBy等于ASC正序
    For One = 0 To i - 1
        For Two = 0 To i - 1
            IF Ucase(OrderBy) = "DESC" Then
                orderByConditions=(CDate(FileArr(One,1)) > CDate(FileArr(Two,1)))
            ElseIF Ucase(OrderBy) = "ASC" Then
                orderByConditions=(CDate(FileArr(One,1)) < CDate(FileArr(Two,1)))
            End IF
            IF orderByConditions Then
                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
            End IF
        Next
    Next
    
    
    '得到当前页的文件位置,开始地址如果为第一页则其实位置是0,因为数组的下限是0
    MoveAddRessStart = P * Max - Max
    
    IF (i-1-Max) > MoveAddRessStart Then
        MoveAddRessEnd=MoveAddRessStart+Max-1
    Else
        MoveAddRessEnd=(i-1)-1
    End IF
    'Response.write Total

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

    '过滤文件扩展名
    Function FilterName(FileName)
        Dim Filter_Expansion_Name,ExpansionName
        Filter_Expansion_Name = "|asp|htm|jpg|jpeg|gif|swf|bmp|png|"'过滤取得文件夹中的文件类型,如果只填写htm则只取htm文件,注意文件本身不会出现在这个表中,但会计算在总数中
        '得到扩展名
        For Tp= Len(FileName) To 1 Step -1
            IF Mid(FileName,Tp,1) = "." Then 
                Exit For
            Else
                ExpansionName = Mid(FileName,Tp,1) & ExpansionName
            End IF
        Next
        IF Instr(1,Filter_Expansion_Name,"|" & ExpansionName & "|")>0 Then
            FilterName=True
        Else
            FilterName=False
        End If
    End Function

    '转换文件大小转换
    Function SizeTo(PFSize)
        SizeTo=0
        IF PFSize>(1024*1024*1024) And (PFSize/1024/1024/1024)>0 Then
            'GB转换
            SizeTo=FormatNumber(PFSize/1024/1024/1024,2)&"GB"
        ElseIF PFSize>(1024*1024) And (PFSize/1024/1024)>0 Then
            'MB转换
            SizeTo=FormatNumber(PFSize/1024/1024,2)&"MB"
        ElseIF PFSize>1024 And (PFSize/1024)>0 Then
            'KB转换
            SizeTo=FormatNumber(PFSize/1024,2)&"KB"
        ElseIF PFSize>0 Then
            'byte转换
            SizeTo=FormatNumber(PFsize,2)&"B"
        Else
            SizeTo=0&"B"
        End IF
    End Function

%>
  http://www.corange.cn/archives/2008/03/356.html

你可能感兴趣的:(遍历文件夹)