2010-12-06 75 views
4

我需要根據日期時間比較兩個文件。我需要檢查這兩個文件是否使用相同的日期時間創建或修改。我用這段代碼來讀取文件的日期時間...如何比較基於日期時間的兩個文件?

string fileName = txtfile1.Text; 
var ftime = File.GetLastWriteTime(fileName).ToString(); 
string fileName2 = txtfile2.Text; 
var ftime2 = File.GetLastWriteTime(fileName2).ToString(); 

有什麼建議嗎?

+0

**不要將您從GetLastWriteTime()接收到的DateTime轉換爲字符串並比較日期嗎?喜歡..如果(ftime == ftime2).. – VVS 2010-12-06 13:47:32

+0

你在檢查他們是否是相同的日期還是他們必須是相同的小時,分​​鍾和秒鐘? – jlafay 2010-12-06 13:51:08

+0

@jlafay:檢查相同的小時,分​​鍾和秒 – bala3569 2010-12-06 13:52:14

回答

12

不要致電ToString()DateTime值由GetLastWriteTime()返回。做到這一點,而不是:

DateTime ftime = File.GetLastWriteTime(fileName); 
DateTime ftime2 = File.GetLastWriteTime(fileName2); 

然後,你可以比較ftimeftime2

if (ftime == ftime2) 
{ 
    // Files were created or modified at the same time 
} 
2

那麼,如何做

ftime == ftime2 

?雖然不需要ToString,但更好的方法是直接比較DateTimes。

+0

ok我在兩個文件夾中有多個文件,我需要比較這些文件是否與datetime匹配 – bala3569 2010-12-06 13:48:59

1

GetLastWriteTime()返回一個DateTime對象,所以你可以這樣做:

if (File.GetLastWriteTime(filename).CompareTo(File.GetLastWriteTime(filename2)) == 0) 

測試如果他們有相同的時間戳。

有關比較DateTime對象的更多提示,請參閱this

-1
bool isMatched=false; 
int ia = string.Compare(ftime.ToString(), ftime2.ToString()); 
if (string.Compare(ftime.ToString(), ftime.ToString()) == 0) 
    isMatched = true; 
else 
    isMatched = false;