2012-10-01 46 views
-4

我想明白爲什麼這個低於特定的查詢是不是從文件夾拿起文件,無論我在做什麼錯,請告知爲什麼LINQ查詢是不是在C#.NET工作

C#LINQ查詢:

var query = from o in Directory.GetFiles("/YourFolder", "*.*", 
       SearchOption.AllDirectories) 
     let x = new FileInfo(o) 
     where x.CreationTime <= DateTime.Now.AddMonths(-10) 
     select o; 
我拿着200個文件的文件夾中

,但它不獲取任何文件,在10的位置,如果我給0這是拉動所有的200個文件,是什麼原因?請指教

文件的創建時間是所有的人都2012/1/5

+13

你確定你有符合這個標準的文件嗎? – Andrey

+4

「文件創建時間全部爲1/5/2012」即僅在5個月前不是10 .. – Manatherin

+0

您的應用程序的起始目錄是否正確?即在它下面有一個\ YourFolder。如果你開始在錯誤的地方,你永遠不會看到它。嘗試調試GetFiles行,然後再轉到LINQ。 –

回答

1

嘗試這樣的事情,而不是:

DateTime minDate = DateTime.Now.AddMonths(-10); 
var query = Directory.GetFiles("/YourFolder", "*.*",SearchOption.AllDirectories).Where(f => new FileInfo(f).CreationTime <= minDate); 

功能是相同的 - 但稍微更容易調試。

+0

我喜歡內聯linq我...更容易編寫和調試,我同意...雖然很難閱讀,直到你習慣了它。我還發現使用內聯編寫Join的難度更大。我知道你可以,但我確實覺得這很困難...... – Nevyn