开发者

How to List the 10 newest files of a directory using ASP

I got some asp code to list the content of a folder (txt files only). I would like to开发者_StackOverflow know if there would be a way to list only the last 10 files created.

My application will create one file a day, using AAMMDD.txt as name.

I would like to be able to list only the 10 last files.

Does anyone here have some example that could share???

thank you in advance.

here is the code I found that list everything (I already made some changes on the script):

<%
Const ImageFilePath = "logs"

Dim objFSO
Dim objFolder
Dim objFile

Dim strFileName
Dim strFileExtension

Dim blnShowFiles

If Request.QueryString("ShowFiles") = "" Then
    blnShowFiles = True
Else
    blnShowFiles = CBool(Request.QueryString("ShowFiles"))
End If


    Set objFSO = Nothing
%>

<style>

ul.dropdownPC, ul.dropdownPC li, ul.dropdownPC ul 
            {
    list-style: none;
    margin: 8px;
    float: left;
    vertical-align: middle;
    padding:0px;
    border:solid;
    border-width:0px;
    border-color:#ccc;
    background-color: #fff;
}
ul.dropdownPC li 
            {
    padding:5px;
    border-width:0px;
}
</style>

<ul class="dropdownPC dropdown-horizontal">
<%
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Server.MapPath(ImageFilePath))

For Each objFile In objFolder.Files
    strFileExtension = LCase(Mid(objFile.Name, InStrRev(objFile.Name, ".", -1, 1) + 1))

    If strFileExtension = "txt" Then
        %>
        <li><a href="<%= ImageFilePath & "/" & objFile.Name %>" target=_blank><img width="80" height="80" border="0" src="images/texticon01.png"><br><center><%= objFile.Name %></center></a>
        <%
        If blnShowFiles Then
            %>
            <!-- <%= objFile.Name %> --></li>
            <%
        Else
            %>
            <!-- <a href="<%=ImageFilePath & "/" & objFile.Name %>">View `Logs</a> --></li>`
            <%
        End If
        %>

        <%
    End If
Next ' objFile

Set objFolder = Nothing
Set objFSO = Nothing
%>


Put the file names and creation dates into a recordset, sort it and get top ten records.

<%
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Server.MapPath(ImageFilePath))

'Required ADO Constants
Const adVarChar = 200
Const adDate = 7
Dim objRs
Set objRS = Server.CreateObject("Adodb.Recordset") 'Recordset for the sort
objRs.Fields.Append "FileName", adVarChar, 255
objRs.Fields.Append "CreateDate", adDate
objRs.Open

For Each objFile In objFolder.Files
    strFileExtension = LCase(Mid(objFile.Name, InStrRev(objFile.Name, ".", -1, 1) + 1))
    If strFileExtension = "txt" Then 'All Text Files Into Recordset
        objRS.AddNew Array("FileName", "CreateDate"), Array(objFile.Name, objFile.DateCreated)
        objRs.Update
    End If
Next ' objFile

objRs.Sort = "CreateDate Desc"
For i = 1 To 10
If objRS.Eof Then Exit For 
%>
        <li><a href="<%= ImageFilePath & "/" & objRS("FileName") %>" target=_blank><img width="80" height="80" border="0" src="images/texticon01.png"><br><center><%= objRS("FileName") %></center></a>
        <% If blnShowFiles Then %>
        <!-- <%= objRS("FileName") %> --></li>
        <% Else %>
        <!-- <a href="<%=ImageFilePath & "/" & objRS("FileName") %>">View `Logs</a> --></li>`
        <% End If %>
<%
objRS.MoveNext
Next
Set objFolder = Nothing
Set objFSO = Nothing
objRS.Close
Set objRS = Nothing
%>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜