2013-05-25 53 views
2

我創建的C#程序,將得到那名 在特定日期創建的指定目錄中的所有文件的保持和再壓縮這些文件的最後一個特定日期和將它們存儲在其他目錄中。聽起來 簡單明瞭,我有Teleriks組件的許可證,因此照顧了壓縮業務。獲取所有文件的列表,修改

但爲了選擇我使用下面的代碼文件:

 //Get all files created yesterday 
     DateTime to_date = DateTime.Now.AddDays(-1); 

     var directory = new DirectoryInfo(@"C:\Path_Of_Files"); 

     var files = directory.GetFiles() 
        .Where(file => file.CreationTime <= to_date); 

     if (files.Count() > 0) 
     { 
      //Zipping code here 
     } 

然而,這讓我在目錄中的所有文件,所以不是荏苒700個文件,它呼嘯而過所有53'000文件該文件夾,這不是我想要的。

當我在Windows資源管理器中查看「上次修改時間」列中的正確日期,但由於某種原因,我的代碼拒絕確認同一日期。我試着兩個:

 var files = directory.GetFiles() 
        .Where(file => file.CreationTime <= to_date); 

 var files = directory.GetFiles() 
        .Where(file => file.LastWriteTime <= to_date); 

兩個具有相同的結果。

我在做什麼錯?

非常感謝所有幫助。

回答

2

您當前的Where表達式會在此時間爲您提供之前的所有文件。也許你想是這樣的:

var files = directory.GetFiles() 
    .Where(file => file.LastWriteTime.Date == to_date.Date); 

這會檢查文件的最後修改日期的日期部分指定的輸入日期日期部分匹配。

+0

工作就像一個魅力。謝謝。 :) – JaggenSWE

相關問題