2014-05-15 32 views
0
string[] dirs = Directory.GetDirectories(mainpath); 
for (int x = 0; x < dirs.Length; x++) 

當我循環查看目錄中的目錄時,目錄不是按順序排列的第一個不是硬盤上的第一個目錄,每個dir都不在其中。 我希望它與硬盤上的順序相同。第一個被創建爲第一個在dirs中。我如何排序數組內的目錄順序?

我該怎麼辦?

+0

指的是爲了你好,歡迎來到StackOverflow。您可以與我們分享您嘗試過的內容嗎? –

+0

你好,謝謝。我還沒有嘗試過任何東西,我不喜歡任何分類選項。 – user3639097

+0

'GetDirectories'使用操作系統順序(不管它是什麼),與通過本機API獲取的默認未排序列表應該沒有區別。請說明您用來檢查「硬盤上的第一個」的API,以便.Net的匹配選項(如果存在)可以提供。 –

回答

2

您可以通過創建時間排序:

DirectoryInfo di = new DirectoryInfo(mainpath); 
IEnumerable<DirectoryInfo> sortedDirectories = 
    di.GetDirectories().OrderBy(c => c.CreationTime); 

然後你就可以使用foreach迭代:

foreach(DirectoryInfo info in sortedDirectories) 
{ 
    //access info here 
} 

雖然這可能不是你被same order as it is on the hard disk