2015-06-29 37 views
0

我有几个文件以日期格式命名(dd/mm/yyyy)。我必须收集它们并按照数组列表排序吗?任何建议...我不喜欢这个如何在vb.net中对数组列表中的日期进行排序?

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() 

回答

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) 
+0

arraylist不是manatory, – Satyajit

+0

那么不同的月份呢? – Satyajit

+0

如果格式为dd/mm/yyyy,那么在日 - 月 - 年的排序应该是罚款。 – User999999

相关问题