파일의 생성 날짜와 마지막 수정 날짜, 마지막 액세스 날짜들을 읽어오거나
변경할 필요성이 있을때 쓸만한 API 함수와 VCL 함수입니다.
아직 시간이없어 테스트는 못해봤지만 아래 데이터타입과 함수들을 사용하면
원하는 처리가 가능할 것 같습니다.
일단 함수 정의만 올립니다.
typedef struct _FILETIME { // ft
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
typedef struct _SYSTEMTIME { // st
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME;
// 파일 시간을 가져오거나 설정하는 함수
BOOL GetFileTime(
HANDLE hFile, // identifies the file
LPFILETIME lpCreationTime, // address of creation time
LPFILETIME lpLastAccessTime, // address of last access time
LPFILETIME lpLastWriteTime // address of last write time
);
BOOL SetFileTime(
HANDLE hFile, // identifies the file
CONST FILETIME *lpCreationTime, // time the file was created
CONST FILETIME *lpLastAccessTime, // time the file was last accessed
CONST FILETIME *lpLastWriteTime // time the file was last written
);
// 파일 시간에서 시스템 시간으로 변환하는 함수
BOOL FileTimeToSystemTime(
CONST FILETIME *lpFileTime, // pointer to file time to convert
LPSYSTEMTIME lpSystemTime // pointer to structure to receive system time
);
// 여기부터는 시스템타임을 TDateTime 으로 변환을위한 VCL 함수들
extern PACKAGE void __fastcall DateTimeToSystemTime(const System::TDateTime DateTime, _SYSTEMTIME &SystemTime);
extern PACKAGE System::TDateTime __fastcall SystemTimeToDateTime(const _SYSTEMTIME &SystemTime);
// 현재 시간을 TDateTime으로 변환 하는 샘플
TDateTime __fastcall GetCurrentDateTime()
{
SYSTEMTIME SystemTime;
GetLocalTime(&SystemTime);
return SystemTimeToDateTime(SystemTime);
}
|