我有几个以日期格式(dd / mm / yyyy)命名的文件。我必须收集它们并在arraylist中排序吗?任何建议......我确实喜欢这个
Dim filepath As String = FileStr
Dim directoryPath As String = System.IO.Path.GetDirectoryName(filepath)
Dim arrayList As New System.Collections.ArrayList()
For Each file As String In System.IO.Directory.GetFiles(directoryPath)
arrayList.Add(System.IO.Path.GetFileNameWithoutExtension(file))
Next
arrayList.Sort()
答案 0 :(得分:2)
注意:名为29/06/2015.txt
的文件在 Windows 上无效。以下代码已使用以下格式进行测试:yyyy-mm-dd
,yyyy-dd-mm
,...
以下实施不起作用吗?这会使用List
而不是arraylist
。
Dim filepath As String = FileStr
Dim directoryPath As String = System.IO.Path.GetDirectoryName(filepath)
Dim myFileList As New List(Of String)
For Each file As String In System.IO.Directory.GetFiles(directoryPath)
'Add only dates to the list
If (IsDate(System.IO.Path.GetFileNameWithoutExtension(file))) Then
myFileList.Add(System.IO.Path.GetFileNameWithoutExtension(file))
End If
Next
myFileList.OrderByDescending(Function(x) CType(x, DateTime))
使用OrderBy或OrderBydescending更改排序方向
如果Arraylist
是强制性的,那么您仍然可以更改输出,您可以轻松创建ArrayList from a List
,如下所示。
Dim arr As New ArrayList(myFileList)