TSearchRec 을 이용하는 방법이 있습니다.
대충 사용 방법입니다...
TSearchRec sr;
AnsiString sSrc = "C:\\Temp\\*.*"; // 탐색할 경로
FILETIME TempTime;
SYSTEMTIME SystemTime;
TDateTime tmFileDateTime;
// 파일 탐색 시작. (디렉토리에서 파일 탐색하는 루틴은 여기서 설명 안함.... )
FindFirst(sSrc, faAnyFile, sr)
// 아래 3가지 중에 골라서 사용.
// 마지막 수정 시간.
FileTimeToLocalFileTime( &sr.FindData.ftLastWriteTime, &TempTime );
// 마지막 Access 시간.
FileTimeToLocalFileTime( &sr.FindData.ftLastAccessTime, &TempTime );
// 생성한 시간.
FileTimeToLocalFileTime( &sr.FindData.ftCreationTime, &TempTime );
// File Time을 System Time으로 변환
FileTimeToSystemTime( &TempTime, &SystemTime );
// System time을 TDateTime형으로 변환
tmFileDateTime = SystemTimeToDateTime(SystemTime);
tmFileDateTime // <- 최종적으로 이놈 가지고 파일 시간 사용하면됨.
FindNext(sr) // 다음 파일 탐색
FindClose(sr); // 탐색 종료.
// 파일 탐색 루틴은 검색해보심 많이 나옴. 찾아보시길.~
chqh 님이 쓰신 글 :
: file open을 할때 FileAge를 이용하여 수정날짜를 구했습니다.
: 그런데 FileAge를 사용하지 않고 ,
: 해당 폴더에서 파일명을 비교하여
: 수정날짜를 가져오는 방법을 알고 싶습니다.
: file open을 시키지 않아도, 자동적으로 수정날짜를 가져오고 싶어서
: 찾아보았는데 GetFileTime 이란 함수를이용하여 datatime을 가져오면
: 3분정도 빠르거나, 시간이 맞지 않는것 같습니다 .
:
: file open을 하지 않고 파일에 있는 내용을 가져올수 있는 방법도 궁금합니다.
: timer를 이용하여 해당 파일들의 수정일자를체크 하여
: 파일의 있는 내용을 DB에 저장 시키려는 작업을 하려고 합니다.
:
: 수동적으로는 file open을 해서 Topendialog를 사용하여 하고 있는데
: 자동적으로 timer로 시간을 지정해 두면 ,
: 그 시간에 원하는 파일들이 자동적으로 파일읽기, 수정일자를 가져오고 싶습니다.
: 어떤 방법이있는지.. 알고싶어요.
:
: 파일읽기는 TFileStream <--- 을 이용하여 사용하면 되나요 ?
: 수정일자는 GetFileTime <---- 을 이용하여 사용하면 되나요 ?