2011-07-07 5 views
2

Je voudrais trier les fichiers en utilisant ASP Classic FSO par date. Dois-je faire une boucle dans tous les fichiers, mettre les dates dans un tableau, puis lister le tableau par ordre chronologique ou y a-t-il un moyen plus simple de le faire en utilisant FSO seul?Sort FileSystemObject par date

Merci,

Mike

Répondre

4

Je créé une fonction VBScript SortFiles qui:

  1. copies FileSystemObject ' s Files collection dans un tableau VBScript
  2. Bubble sorte le tableau VBScript via descendant DateLastModified ordre (mise en garde: il est une sorte lente, vous pouvez l'améliorer avec des algorithmes alternatifs)

Voici ma fonction VBScript SortFiles:

Function SortFiles(files) 
    ReDim sorted(files.Count - 1) 
    Dim file, i, j 
    i = 0 
    For Each file in files 
    Set sorted(i) = file 
    i = i + 1 
    Next 
    For i = 0 to files.Count - 2 
    For j = i + 1 to files.Count - 1 
     If sorted(i).DateLastModified < sorted(j).DateLastModified Then 
     Dim tmp 
     Set tmp = sorted(i) 
     Set sorted(i) = sorted(j) 
     Set sorted(j) = tmp 
    End If 
    Next 
    Next 
    SortFiles = sorted 
End Function 

utilisation de l'échantillon de la fonction SortFiles:

Dim fso 
Set fso = CreateObject("Scripting.FileSystemObject") 
Dim files 
Set files = fso.GetFolder(SOME_PATH).Files 
Dim file 
For Each file in SortFiles(files) 
    Rem Do something with file ... 
Next 
+0

Cela fonctionne pour moi. Je vous remercie. – James