2009-12-21 31 views
6

Bir dosya alacağım ve bu tarihten daha eskiyse kaç gün, 0 aksi dönecekse, son bir kaç gün ...Dosya Al Son Değiştirme Zamanı ve Karşılaştırma

Örneğin

:

int IsOlder(TCHAR *filename, int days) 
{ 

do operation. 

If last modify date was older than days variable 
return 0 
else 
return 1 

} 

MS VC++ 6, Windows için. Şimdiden teşekkürler! Bir dosya ile ilgili çeşitli tarihleri ​​

cevap

12

, Windows tarih-saat bilgisi ile doldurulacak bir dosya parametresinde sapı ve 3 FILETIME yapıları alarak GetFileTime() (doc on MSDN) olarak adlandırılan bir API işlevi vardır: FILETIME yapısı gizlenmiştir;

FILETIME creationTime, 
     lpLastAccessTime, 
     lastWriteTime; 
bool err = GetFileTime(h, &creationTime, &lpLastAccessTime, &lastWriteTime); 
if(!err) error 

, işlevini kullanın FileTimeToSystemTime()

SYSTEMTIME systemTime; 
bool res = FileTimeToSystemTime(&creationTime, &systemTime); 
if(!res) error 

Sonra alanlarıkullanabilirsiniz

: Kullanılacak şekilde daha kolay bir SYSTEMTIME yapıya çevirmek Gün sayınızla karşılaştırmak için, wMonth, vb.

2

GetFileTime alır. example var.

Son yazma saatini almanız ve farkı günlerden oradan hesaplamanız gerekir. GetFileTime işlevi, oldukça eğlendirici FILETIME yapısını döndürdüğü için, FileTimeToSystemTime ile muhtemelen sistem saatine (struct SYSTEMTIME) dönüştürmek isteyebilirsiniz.