如何獲取java.io.File.list()
與Windows資源管理器中的順序相同?如何獲取java.io.File.list()與Windows資源管理器中的順序相同
在程序中,我創建了Temp
文件夾,例如Temp1
,Temp2
等。但是當我使用java.io.File.list()
來檢索文件夾列表時,它給出了Temp1
,Temp10
等等。
請告訴如何獲得與在Windows資源管理器中顯示的訂單相同的訂單清單?
謝謝
如何獲取java.io.File.list()
與Windows資源管理器中的順序相同?如何獲取java.io.File.list()與Windows資源管理器中的順序相同
在程序中,我創建了Temp
文件夾,例如Temp1
,Temp2
等。但是當我使用java.io.File.list()
來檢索文件夾列表時,它給出了Temp1
,Temp10
等等。
請告訴如何獲得與在Windows資源管理器中顯示的訂單相同的訂單清單?
謝謝
您需要編寫自己的比較器。比較器需要分割文件名字符串,將它們分成連續的非數字字符和數字字符序列。然後對序列進行排序,在比較之前將一系列數字字符轉換爲整數。另外,如果整數相等(由於前導零),則在較短序列之前排序較長的數字序列。
這是一個稱爲自然排序的特定窗口排序算法的實現。
Java - Sort Strings like Windows Explorer
總之它分裂兩個字符串的信比較 - 數字部件,這部分以特定的方式來實現這種排序的比較。
用'Collections.sort()'創建你自己的比較器和排序列表? – Andremoniy
但是需要哪種類型的排序才能將列表與Windows命令進行匹配? – Kishore
@Kishore:問題根本不明確。 Windows可以按名稱,大小,類型,日期,... – jlordo