Diese Funktion kann Dateien die mit kompletten Pfad in einem Arry angegeben werden nach einen von 3 verschiedenen Zeitangaben einer Datei sortiert werden. Die Zeiten LastAccessTime, LastWriteTime und CreationTime stehen zur Verfügung. Das Array kann nach einen von diesen 3 Zeiten sortiert werden.
Public Enum EnumFileAttributes As Integer
LastAccessTime = 0
LastWriteTime = 1
CreationTime = 2
End Enum
''' <summary>
''' Diese Funktion kann Dateien die mit kompletten Pfad in einem Arry angegeben werden
''' nach einen von 3 verschiedenen Zeitangaben einer Datei sortiert werden.
''' Die Zeiten LastAccessTime, LastWriteTime und CreationTime stehen zur Verfügung.
''' Das Array kann nach einen von diesen 3 Zeiten sortiert werden.
''' </summary>
''' <param name="FileArray">Das zu sortierende Array mit den komlpetten Pfaden der zu sortierenden Dateien</param>
''' <param name="TimeField">Gibt die Zeit an nach der Sortiert werden soll</param>
''' <param name="DoReverse">Gibt an ob das Array nach der sortierung umgekehrt werden soll (Neue Dateien zuerst)</param>
Public Sub SortFilesByDate(ByRef FileArray() As String, ByVal TimeField As EnumFileAttributes, Optional ByVal DoReverse As Boolean = False)
Dim Untouched As Boolean
Dim ArrLen As Long = FileArray.Length - 1
Dim TmpValue As String
Select Case TimeField
Case EnumFileAttributes.CreationTime
Do
Untouched = True
For i As Long = 0 To ArrLen - 1
If File.GetCreationTime(FileArray(i)) > File.GetCreationTime(FileArray(i + 1)) Then
TmpValue = FileArray(i)
FileArray(i) = FileArray(i + 1)
FileArray(i + 1) = TmpValue
Untouched = False
End If
Next i
Loop Until Untouched
Case EnumFileAttributes.LastAccessTime
Do
Untouched = True
For i As Long = 0 To ArrLen - 1
If File.GetLastAccessTime(FileArray(i)) > File.GetLastAccessTime(FileArray(i + 1)) Then
TmpValue = FileArray(i)
FileArray(i) = FileArray(i + 1)
FileArray(i + 1) = TmpValue
Untouched = False
End If
Next i
Loop Until Untouched
Case EnumFileAttributes.LastWriteTime
Do
Untouched = True
For i As Long = 0 To ArrLen - 1
If File.GetLastWriteTime(FileArray(i)) > File.GetLastWriteTime(FileArray(i + 1)) Then
TmpValue = FileArray(i)
FileArray(i) = FileArray(i + 1)
FileArray(i + 1) = TmpValue
Untouched = False
End If
Next i
Loop Until Untouched
End Select
If DoReverse = True Then Array.Reverse(FileArray)
End Sub
1 Kommentare zum Snippet