Guffa | Foto | Programmering

Sortera filer med recordset

I recordset-objektet finns en funktion för att sortera poster. Det kan man utnyttja för att sortera till exempel en lista med filer.

Den här koden skapar ett recordset med tre fält, där den lägger in filerna som finns i mappen. Sedan sorteras filerna på filstorlek, och skrivs ut i en tabell.

' ADO-konstanter
Const adInteger = 3
Const adDate = 7
Const adVarChar = 200
Const adVarWChar = 202

' dimensionera variabler
Dim objRS, objFS, objFile

' skapa ett recordset-objekt
Set objRS = Server.CreateObject("ADODB.Recordset")

' skapa fält i recordsetet
objRS.Fields.Append "Name", adVarWChar, 256
objRS.Fields.Append "Size", adInteger
objRS.Fields.Append "Created", adDate

' öppna recordsetet (utan databaskoppling och utan SQL-fråga)
objRS.Open

' skapa ett FSO-objekt
Set objFS = Server.CreateObject("Scripting.FileSystemObject")

' loopa igenom filerna i mappen
For each objFile in objFS.GetFolder(Server.MapPath(".")).Files
   ' skapa en ny post i recordsetet
   objRS.AddNew
   ' lägg in värden i posten
   objRS("Name") = objFile.Name
   objRS("Size") = objFile.Size
   objRS("Created") = objFile.DateCreated
Next

' ta bort FSO-objektet
Set objFS = Nothing

' sortera recordsetet
objRS.Sort = "Size desc"

' loopa ut filerna i en tabell
%>
<table>
   <%
   Do Until objRS.EOF
      %>
      <tr>
         <td><%=objRS("Name")%></td>
         <td><%=objRS("Size")%></td>
         <td><%=objRS("Created")%></td>
      </tr>
      <%
      objRS.MoveNext
   Loop
   %>
</table>
<%

' stäng recordsetet
objRS.Close
' ta bort recordsetet
Set objRS = Nothing