2012-04-27 210 views
1

可能重複:
Sorting Directory.GetFiles()Directory.GetFiles通過創建時間排序

當我做Directory.GetFiles(路徑)似乎是按文件名升序排序,怎麼能我改變命令,比如創建日期?我應該設置的任何屬性?

private void get_files() 
{ 
    string[] file_list = Directory.GetFiles(path); 
    int i = 0; 
    foreach (string file in file_list) 
    { 
     checkedListBox1.Items.Add(file); 
     checkedListBox1.SetItemChecked(i, true); 
     i++; 
    } 
} 
+1

使用DirectoryInfo獲取FileInfos列表;然後按創建日期排序結果。 – phoog 2012-04-27 15:51:37

回答

0

MSDN,該文件是在不能保證回來,如果你想要一個特定的順序,你應該使用Array.Sort()方法的文件列表上的順序。

3

你可以簡單地用LINQ重新排序集:

var orderedSet = file_list.Select(path => new FileInfo(path)) 
    .OrderBy(x => x.CreationTime) 
    .Select(x => x.FullName) 
    .ToList(); 

當然,這意味着它會爲所有這些文件做一個完整的查詢,但它能夠完成任務。

相關問題