1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
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
|