2014-06-17 25 views
-1

排序文件有點問題。按c中的大小錯誤排序文件#

我的程序應該允許我按大小和日期對文件進行排序。日期工作正常,但當我嘗試按大小排序時,它會返回錯誤。

這是我的相關代碼:

if (orden.Equals("tam")) 
{ 
    ficheroo = dirInfoo.GetFiles(filtro, SearchOption.AllDirectories).OrderBy(f => new FileInfo(f).Length).ToList(); 
} 

誤差在使用new FileInfo(f).Length和錯誤是:

拉MEJOR coincidencia德方法方法sobrecargado對「System.IO.FileInfo。 FileInfo的(串)」 tiene algunos argumentos沒有válidos

這相當於:

爲「System.IO.FileInfo.FileInfo(串)」的最佳重載的方法匹配具有一些無效參數

+0

你能翻譯錯誤信息嗎? – Watsche

+0

英語錯誤是什麼? FileInfo有無效的參數? – Sayse

+0

@Sayse Yup - 無效的參數。 –

回答

6

DirectoryInfo.GetFiles已經返回FileInfo[] - 所以你不需要每個條目轉換成一個FileInfo使用構造函數,就像你現在要做的那樣。你可以使用:

ficheroo = dirInfoo.GetFiles(filtro, SearchOption.AllDirectories) 
        .OrderBy(f => f.Length) 
        .ToList(); 

(作爲一個方面說明,這是值得一看利用垂直空間如何使代碼更容易比有一個巨大樣樣在行閱讀)

1

GetFiles已經返回FileInfo,我懷疑你想要

dirInfoo.GetFiles(filtro, SearchOption.AllDirectories) 
        .OrderBy(f => f.Length).ToList(); 
0

您正在收到編譯錯誤,因爲GetFiles已經返回一個FileInfo數組。所以你不需要在OrderBy子句中創建新的FileInfos。

ficheroo = dirInfoo.GetFiles(filtro, SearchOption.AllDirectories).OrderBy(f => f.Length).ToList();