list files sorted by date

this must be easy, but I can't see how to do it.  I can list the files I want (see code below) but they are listed in name order. 

Obviously I could sort them manually afterwards, but that sounds like hard work, any ideas anyone

Thanks, Ade

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Dim dir As DirectoryInfo = New DirectoryInfo(m_strDirectory & "\Exports")
            Dim myF As FileInfo

            Debug.Write(vbCrLf & "FileName  CreationTime AccessTime WriteTime" & vbCrLf)

            For Each myF In dir.GetFiles("*.REQ")

                Debug.Write(myF.Name & " " & myF.CreationTime.ToString & " " & myF.LastAccessTime.ToString & " " & myF.LastWriteTime & vbCrLf)

            Next
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Answer this question

list files sorted by date

  • Pablo Espada

    brilliant!  thanks very much Smile

  • jockofett

    At first you must create comparer for comparing files by date.


      Public Class FileDateComparer
        Implements IComparer

        Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
          Dim xFile, yFile As IO.FileInfo
          xFile = DirectCast(x, IO.FileInfo)
          yFile = DirectCast(y, IO.FileInfo)
          Return Date.Compare(xFile.LastWriteTime, yFile.LastWriteTime)
        End Function
      End Class


     



    Then you shoul rewrite your code like this


    Dim dir As DirectoryInfo = New DirectoryInfo(m_strDirectory & "\Exports")
    Dim myF As FileInfo

    Debug.Write(vbCrLf & "FileName  CreationTime AccessTime WriteTime" & vbCrLf)

    Dim MyFiles() As IO.FileInfo = dir.GetFiles("*.REQ")
    Array.Sort(MyFiles, New FileDateComparer())

    For Each myF In MyFiles
       Debug.Write(myF.Name & " " & myF.CreationTime.ToString & " " & myF.LastAccessTime.ToString & " " & myF.LastWriteTime & vbCrLf)
    Next


     

    This sorts files by LastWriteTime



  • list files sorted by date