2013-05-14 28 views
-3

我想編寫一個代碼來返回6個月以上的文件數(計數)。計算6個月以前的文件數

我有以下腳本返回所有

任何幫助,將不勝感激

代碼如下

// check the number of file in the CPS directory on S drive 
private void btnCheck_Click(object sender, EventArgs e) 
{ 
    { 
     listBox1.Items.Clear(); 
     { 
     } 

     string[] files = System.IO.Directory.GetFiles(@"S:\CPS Papers\"); // @"S:\CPS Papers\" C:\test\ 

     this.listBox1.Items.AddRange(files); 
     textBox1.Text = listBox1.Items.Count.ToString(); 
     { 
     } 
    } 
} 
+4

看看FileInfo.CreationTime(假設這就是你感興趣的)。 LINQ也會對你有用。 – 2013-05-14 15:58:05

+0

你最終會想要一個代表你正在比較的文件的'FileInfo'對象。目前,您只有文件的路徑。 – 2013-05-14 15:58:52

+0

一種方法是爲您的數組創建一個for循環,並創建一個FileInfo對象(構造函數將文件路徑作爲參數)。然後,您將按照Jon Skeet的說法或其他日期時間檢查創建時間。 – 2013-05-14 16:02:15

回答

0

你可能需要一個數據結構中的文件

public class FileInfo 
{ 
    // .. member declaring age of a file :D (lets say Age) 
} 

如果你設法得到一個文件實例(文件)的集合,你可以使用一個linq表達式:

var result = from file in files where file.Age > 6 select file; 
+1

此FileInfo類已存在。爲什麼不使用已經這樣做的System.IO內容? – 2013-05-14 16:23:14

+0

哦,好的,甚至更好! – dinony 2013-05-14 19:14:57

3

這樣的事情?

var files = Directory.EnumerateFiles(@"S:\CPS Papers\") 
    .Select(f => new FileInfo(f)) 
    .Where(info => info.CreationTime < DateTime.Now.AddMonths(-6)) 
    .Select(info => info.Name); 
+0

謝謝大家的答案,我今天會嘗試。 :) – user2038015 2013-05-15 08:29:35