1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
BOOL myGetFileTime(const char * NameFile, LPTSTR lpszCreate,LPTSTR lpszAccess,LPTSTR lpszWrite){
FILETIME ftCreate, ftAccess, ftWrite;
SYSTEMTIME stUTC, stCreateLocal,stAccessLocal,stWriteLocal;
//opuverture du handle de fichier si existe
HANDLE hFile = CreateFile(NameFile,0,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,
OPEN_EXISTING,0,NULL);
if (hFile != INVALID_HANDLE_VALUE){
//Recupere les temps du fichier
if (!GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite))
return FALSE;
else
CloseHandle(hFile);
//end if
}else
return FALSE;
//end if
//Converti le temp de creation en temp local
FileTimeToSystemTime(&ftCreate, &stUTC);
SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stCreateLocal);
//Converti le temp dern.acce en temp local.
FileTimeToSystemTime(&ftAccess, &stUTC);
SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stAccessLocal);
//Converti le temp dern.modif en temp local.
FileTimeToSystemTime(&ftWrite, &stUTC);
SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stWriteLocal);
//Construit les chaines pour montrer la date et le temp.
wsprintf(lpszCreate, TEXT("%02d/%02d/%d %02d:%02d"),
stCreateLocal.wMonth, stCreateLocal.wDay, stCreateLocal.wYear,
stCreateLocal.wHour, stCreateLocal.wMinute);
wsprintf(lpszAccess, TEXT("%02d/%02d/%d %02d:%02d"),
stAccessLocal.wMonth, stAccessLocal.wDay, stAccessLocal.wYear,
stAccessLocal.wHour, stAccessLocal.wMinute);
wsprintf(lpszWrite, TEXT("%02d/%02d/%d %02d:%02d"),
stWriteLocal.wMonth, stWriteLocal.wDay, stWriteLocal.wYear,
stWriteLocal.wHour, stWriteLocal.wMinute);
return TRUE;
}//end process |
Partager