2013-04-29 29 views
6

Potrzebuję pętli przez pliki w danym folderze w porządku malejącym według "Ostatnia modyfikowana data".Pętla przez WSZYSTKIE pliki w folderze na podstawie "Ostatnia zmodyfikowana data"

W pierwszej iteracji pętli muszę mieć możliwość otwarcia ostatnio zmodyfikowanego pliku do odczytu i zamknięcia. W drugiej iteracji, muszę być w stanie otworzyć 2nd ostatnio zaktualizowany plik do odczytu i zamknąć go itp

  1. Czy jest zbudowany w sposób, który pozwala FileSystemObject aby posortować pliki lub zrobić absolutnie napisać niestandardową procedurę sortowania?

  2. Jeśli musimy przejść z niestandardową procedurą sortowania, czy można to napisać bez wielu funkcji? tj. cały kod w głównej funkcji.

  3. Prędkość jest problemem, ponieważ musi istnieć wiele plików do sortowania. Dlatego wszelkie procedury niestandardowe powinny być wydajne.

Odpowiedz

9

Ty mógł odczytać nazwy plików i daty na odłączonym recordset i sortowania, które według daty:

Set fso = CreateObject("Scripting.FileSystemObject") 

Set list = CreateObject("ADOR.Recordset") 
list.Fields.Append "name", 200, 255 
list.Fields.Append "date", 7 
list.Open 

For Each f In fso.GetFolder("C:\some\where").Files 
    list.AddNew 
    list("name").Value = f.Path 
    list("date").Value = f.DateLastModified 
    list.Update 
Next 

list.MoveFirst 
Do Until list.EOF 
    WScript.Echo list("date").Value & vbTab & list("name").Value 
    list.MoveNext 
Loop 

list.Sort = "date DESC" 

list.MoveFirst 
Do Until list.EOF 
    WScript.Echo list("date").Value & vbTab & list("name").Value 
    list.MoveNext 
Loop 

list.Close 
+0

dzięki. Wypróbuję to i dam ci znać! – slayernoah

+0

Działa doskonale! – slayernoah

+0

Ten skrypt wyświetla dwukrotnie listę plików. Raz w dowolnej kolejności, a następnie posortowane według daty. Wystarczy wspomnieć o tym na wypadek, gdyby ktoś zastanawiał się, dlaczego lista nie została najpierw posortowana, a która nie została posortowana. –