매번 말씀 드리지만 전 개발자가 아닙니다.
개발과 관계 없는 업종에 근무하고 있고 다만 불편함을 해소하고자 잡다한 프로그램을 만들어 사용할 뿐입니다.
그러니 제가 올리는 소스코드는 문제가 있을 수도 있으니 검증하고 사용하세요.
이미 올라온 내용일 수도 있지만
파일의 생성일자, 마지막수정일자, 접근일자를 구해야 하는데
명령어 대로 처리를 하니 날자가 이상하게 나옵니다.
결국 인터넷을 뒤져가며 간신히 소스코드를 구해서 실행해 보니 시간이 아주 황당하게 나오네요.
몇시간을 허비하며 인터넷을 다시 뒤져 간신히 구했습니다.
어떻게 보면 당연한지 모르겠지만 파일 날자가 그리니치천문대 기준의 날자라 한국시간에 맞게 시간을 더하거나 빼야 하는데
그걸 몰라서 고생했네요.
혹시 저 처럼 파일 날자구하는데 시간이 황당하게 나온다 하는 분들 참고하세요.
제가 만든게 아니고 구글링해서 얻은 소스 그대로 올립니다.
function GetFileTimes(const FileName: string; var Created, Accessed, Modified: TDateTime): Boolean;
var
h: THandle;
Info1, Info2, Info3: TFileTime;
SysTimeStruct: SYSTEMTIME;
TimeZoneInfo: TTimeZoneInformation;
Bias: Double;
begin
Result := False;
Bias := 0;
h := FileOpen(FileName, fmOpenRead or fmShareDenyNone);
if h > 0 then
begin
try
if GetTimeZoneInformation(TimeZoneInfo) <> $FFFFFFFF then
Bias := TimeZoneInfo.Bias / 1440; // 60x24
GetFileTime(h, @Info1, @Info2, @Info3);
if FileTimeToSystemTime(Info1, SysTimeStruct) then
Created := SystemTimeToDateTime(SysTimeStruct) - Bias;
if FileTimeToSystemTime(Info2, SysTimeStruct) then
Accessed := SystemTimeToDateTime(SysTimeStruct) - Bias;
if FileTimeToSystemTime(Info3, SysTimeStruct) then
Modified := SystemTimeToDateTime(SysTimeStruct) - Bias;
Result := True;
finally
FileClose(h);
end;
end;
end;
지금까지는 물론이고 앞으로도 제가 많은 도움을 받게될 볼랜드포럼의 여러 고수분들께 감사드립니다.
|