Loop through ALL files in a folder based on 'Last Modified Date'
You could read the file names and dates into a disconnected recordset and sort that by date:
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
slayernoah
SO has helped me SO much. I want to give back when I can. And I am #SOreadytohelp http://stackoverflow.com/users/1710577/slayernoah #SOreadytohelp
Updated on June 29, 2020Comments
-
slayernoah almost 4 years
I need to loop through the files in a given folder in descending order of 'Last Modified Date'.
In the first iteration of the loop I need to be able to open the most recently modified file for reading and close it. In the second iteration, I need to be able to open the 2nd most recently updated file for reading and close it etc.
Is there a built in method that allows a
FileSystemObject
to sort the files or do we absolutely have to write custom sorting routine?If we have to go with a custom sorting routine, is it possible to write this without having multiple functions? i.e. all code in the a main function.
Speed is a concern since there are to be a lot of files to sort through. Therefore any custom procedures should be efficient.
-
slayernoah almost 11 yearsThanks a lot. I will try this out and let you know!
-
st12 over 6 yearsThis script echoes the list of files twice. Once in arbitrary order, then once sorted by date. Just mentioning this in case anyone is wondering why the list echoed first is not sorted.