파일 수정시간을 조작하기 위한 함수
파일 기본 정보인 생성시간/수정시간/접근시간을 조작하기 위한 함수. 역시나 꽁수의 결정판!
간단한 팁이니까 구지 부연설명을 달아두지는 않겠다. 적당히 응용해서 사용하시라~
- BOOL _GetFileWriteTime( HANDLE hFile, LPTSTR lpszWriteTime )
- {
- FILETIME ft;
- SYSTEMTIME stUTC, stLocal;
- if ( ! GetFileTime( hFile, NULL, NULL, &ft ) )
- return FALSE;
- FileTimeToSystemTime( &ft, &stUTC );
- SystemTimeToTzSpecificLocalTime( NULL, &stUTC, &stLocal );
- wsprintf( lpszWriteTime, _T("%04d/%02d/%02d %02d:%02d:%02d"),
- stLocal.wYear, stLocal.wMonth, stLocal.wDay,
- stLocal.wHour, stLocal.wMinute, stLocal.wSecond );
- return TRUE;
- }
- BOOL _SetFileWriteTime( HANDLE hFile, LPCTSTR lpszWriteTime )
- {
- FILETIME ft, ft_utc;
- SYSTEMTIME st;
- TCHAR buff[5];
- // parse time string
- _tcsncpy_s( buff, 5, lpszWriteTime, 4 );
- st.wYear = _ttoi( buff );
- _tcsncpy_s( buff, 5, lpszWriteTime + 5, 2 );
- st.wMonth = _ttoi( buff );
- _tcsncpy_s( buff, 5, lpszWriteTime + 8, 2 );
- st.wDay = _ttoi( buff );
- _tcsncpy_s( buff, 5, lpszWriteTime + 11, 2 );
- st.wHour = _ttoi( buff );
- _tcsncpy_s( buff, 5, lpszWriteTime + 14, 2 );
- st.wMinute = _ttoi( buff );
- _tcsncpy_s( buff, 5, lpszWriteTime + 17, 2 );
- st.wSecond = _ttoi( buff );
- st.wMilliseconds = 0; // ignore
- // local time을 utc time으로 변환하기 위한 꽁수 -_-;
- SystemTimeToFileTime( &st, &ft );
- LocalFileTimeToFileTime( &ft, &ft_utc );
- FileTimeToSystemTime( &ft_utc, &st );
- if ( ! SystemTimeToFileTime( &st, &ft ) )
- return FALSE;
- if ( ! SetFileTime( hFile, NULL, NULL, &ft ) )
- return FALSE;
- return TRUE;
- }
'소프트웨어 개발' 카테고리의 다른 글
| CVS sticky tag 관련 오류 (11) | 2009/06/04 |
|---|---|
| 64bit Windows IIS에서 ASP(.NET) COM실행하기 (15) | 2009/05/11 |
| 파일 수정시간을 조작하기 위한 함수 (2) | 2009/04/24 |
| Dialog를 작업표시줄(task bar)에서 숨기려면 (2) | 2009/04/21 |
| Windows OS Version 알아내기 (7) | 2009/04/13 |
| CrateDirectory 응용 (4) | 2009/04/08 |

Tag //

Comment List
과부 사정 홀아비가 안다
이것은 감사의 말씀을 매우 짧은 주석입니다