webForumDet fria alternativet

Lista filer

ASP

3 svar · 453 visningar · startad av Nate.A

Medlem sedan mars 2006296 inlägg
Frågan#1

Jag har ett enkelt ASP script som listar filer och kataloger. Det fungerar som det ska för det ska förutom en sak, bokstavsordningen.

Om filerna exempelvis är döpta A1, A2 osv. upp till ex A11
så blir listar scriptet A1, A10, A11, A2, A3 osv.

Hur skriver jag om scriptet så att det listar "rätt" ordning?

Sub ListFolder(path)
     Dim fs, folder, item
     Set fs = CreateObject("Scripting.FileSystemObject")
     Set folder = fs.GetFolder(path)
         For each item in folder.Files
		Response.Write("<div class='file'>" & item.Name & "</div>" & vbCrLf)
         Next  

         For each item in folder.SubFolders
		 Response.Write("<h3 class='foldername'>" & item.Name & "</h3>" & vbCrLf & "<div class='files'>")
           	call ListFolder(item.Path)
		Response.Write("</div>" & vbCrLf)
         Next
End Sub
Medlem sedan feb. 200112 078 inlägg
#2

Det finns inga standardmetoder i FSO för att sortera om datat, sorteringsordningen är den som är satt på mappen i Windows. Det finns ett par lösningar (om du inte kan ändra sorteringen på mappen i Windows eller via API), men de är ju inte snygga;

1. Loopa ut datat i en array eller ett dictionary och gör en sk- Bubble sort på det (ineffektivt)
2. Loopa ut datat i ett ADODB.Recordset och sortera det med dess inbyggda funktioner (resurskrävande/ineffektivt)

Avsaknaden av ordentliga collections (samlingar) i ASP gör att sådana här problem uppstår. :)

Medlem sedan juli 20003 825 inlägg
#3

Detta är väl att kategorisera som ett grundläggande fel i Windows, alla versioner.

I Mac OS listas ALLTID filer som du vill lista dom, alla versioner sedan tidernas begynnelse, 1984.

Det är iofs kanske ingen tröst, men det finns folk som har tänkt på detta tidigare och tydligen finns en lösning på denna utmaning!

Medlem sedan feb. 200112 078 inlägg
#4

Eclipse skrev:

Detta är väl att kategorisera som ett grundläggande fel i Windows, alla versioner.

Windows? Snarare i Scripting FilesystemObject, inget annat. Sorteringen i Windows fungerar ju fortfarande. Sen kan man ju undra vad Mac OS har med saken att göra.. :q

Men som Eclipse säger finns det ju fler som har haft samma "problem", här är ett bra exempel på wF.

/red. Egentligen är det lika bra att du kollar den här direkt; Sorting Arrays: VBScript Implementation

263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)