현재 오프라인 상태입니다. 인터넷에 다시 연결하기를 기다리고 있습니다.

FILETIME 구조 정보: 작업

중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

188768
요약
파일 시간을 특정 날짜 및 는 지정된 파일, 마지막으로 액세스한 만들거나 마지막으로 쓴 시간을 나타냅니다. 파일 시간은 FILETIME 구조체에 저장됩니다. 이 구조는 다양한 Win32 API 호출에 사용됩니다.
추가 정보
FILETIME 구조를 1601년 1월 1일 이후로 100나노초 간격의 수를 나타냅니다. 구조를 단일 64 비트 값을 결합하는 두 개의 32 비트 값으로 구성됩니다.
   typedef struct _FILETIME {     DWORD dwLowDateTime;     DWORD dwHighDateTime;   } FILETIME;				
FILETIME 구조를 100나노초 간격의 기반으로 합니다. 파일 시간을 사용하여 작업할 때 다음 기호를 정의하는 데 도움이 됩니다. 예를 들어,:
   #define _SECOND ((int64) 10000000)   #define _MINUTE (60 * _SECOND)   #define _HOUR   (60 * _MINUTE)   #define _DAY    (24 * _HOUR)				

파일 시간 함께 Arithmetics 수행

파일 시간이 간단한 산술 연산을 수행하는 데 필요한 경우가 많습니다. 예를 들어, 파일을 이전 30 일 때 알아야 할 수도 있습니다. 파일 시간을 사용하여 산술 연산을 수행할 수 사용하면 필요한 경우 FILETIME quadword (64 비트 정수), 변환할 수 산술, 수행하고 결과를 위해 FILETIME 다시 변환합니다.

파일 작성 시간을 포함하는 FILETIME 구조가 ft 가정하고, 다음 예제 코드를 30일 시간이 추가합니다:
   ULONGLONG qwResult;   // Copy the time into a quadword.   qwResult = (((ULONGLONG) ft.dwHighDateTime) << 32) + ft.dwLowDateTime;   // Add 30 days.   qwResult += 30 * _DAY;   // Copy the result back into the FILETIME structure.   ft.dwLowDateTime  = (DWORD) (qwResult & 0xFFFFFFFF );   ft.dwHighDateTime = (DWORD) (qwResult >> 32 );				

파일 시간 설정

SetFileTime() 함수를 사용하여 파일에 대한 파일 시간을 설정할 수 있습니다.
   BOOL SetFileTime(     HANDLE hFile,                     // Handle to 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 to.   );				
이 함수를 사용하면 생성 수정하고, 액세스, 마지막, 마지막으로 파일 내용을 변경하지 않고 번 쓸 수 있습니다. 이 함수를 사용하여 열린 파일 핸들이 있어야 합니다. 이 파일 핸들은 CreateFile() 또는 OpenFile()에 대한 호출에서 얻을 수 있습니다. GENERIC_WRITE 액세스 파일을 열어야 합니다. 파일 시간을 설정한 후 CloseHandle()에 대한 호출을 통해 파일 핸들을 해제해야 합니다.

assuming szFilename 올바른 파일 이름 및 ft FILETIME 구조, 다음 예제 코드에서는 파일 만든 날짜 ft에 포함된 시간 설정합니다:
   BOOL bResult;   HANDLE hFile = CreateFile( szFilename,      GENERIC_WRITE, // The file must be opened with write access.      FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL );   if (hFile != INVALID_HANDLE_VALUE) {      bResult = SetFileTime( hFile, &ft, NULL, NULL );      CloseHandle(hFile);   }				

파일 시간 표시

지역 유니버설 표준시 (UTC) 파일 시간을 기반으로 합니다. 느슨하게 시간은 UTC 기준으로 그리니치, 영국 현재 날짜 및 시간이 정의됩니다. 파일 시간을 현지 시간으로 (즉, 날짜 및 시간을 표준 시간대의) 관련하여 나타낼 가능성이 됩니다. 이렇게 하려면 FileTimeToLocalFileTime() 같이 사용할 수 있습니다:
   BOOL FileTimeToLocalFileTime(     CONST FILETIME *lpFileTime,  // Pointer to UTC file time to convert.     LPFILETIME lpLocalFileTime   // Pointer to converted file time.   );
노트가 이 함수는 표준 시간대 및 DST에 대한 현재 설정을 사용합니다. 일광 절약 시간제 경우 변환 중인 시간을 표준 시간으로 경우에도 따라서 이 함수는 일광 절약 시간제, 고려해야 됩니다.

의미 있는 방식으로 파일 시간을 표시하려면 먼저 FileTimeToSystemTime() 사용하여 다음과 같이 시스템 시간 변환 합니다:
   BOOL FileTimeToSystemTime(     CONST FILETIME *lpFileTime, // Pointer to file time to convert.     LPSYSTEMTIME lpSystemTime   // Pointer to structure to receive   );                            // system time.				
날짜 및 시간을 월, 일, 연도, 요일, 시간, 분, 초 및 밀리초에 대한 개별 구성원을 사용하여 있는 SYSTEMTIME 구조를 나타냅니다.

시스템에서 선택한 현재 로케일에 일관된 형식으로 날짜 및 시간을 표시하는 데 사용하는 것이 있습니다. GetDateFormat() 및 GetTimeFormat() 같이 사용하여 이 작업을 수행할 수 있습니다:
   int GetDateFormat(     LCID Locale,              // Locale for which date is to be formatted.     DWORD dwFlags,            // Flags specifying function options.     CONST SYSTEMTIME *lpDate, // Date to be formatted.     LPCTSTR lpFormat,         // Date format string.     LPTSTR lpDateStr,         // Buffer for storing formatted string.     int cchDate               // Size of buffer.   );   int GetTimeFormat(     LCID Locale,              // Locale for which time is to be formatted.     DWORD dwFlags,            // Flags specifying function options.     CONST SYSTEMTIME *lpTime, // Time to be formatted.     LPCTSTR lpFormat,         // Time format string.     LPTSTR lpTimeStr,         // Buffer for storing formatted string.     int cchTime               // Size of buffer.   );				
LOCALE_USER_DEFAULT 첫 번째 매개 변수로 이러한 함수에 전달하는 방법, 사용자가 전달된 날짜/시간을 기본 형식으로 현재 로캘의 형식을 알려. 이 경우 NULL lpFormat 매개 변수를 전달할 수 있습니다.

다음 샘플 코드에서는 ft에 저장된 날짜를 인쇄합니다 ft UTC 값을 포함하는 FILETIME 구조입니다 가정하면:
   SYSTEMTIME st;   char szLocalDate[255], szLocalTime[255];   FileTimeToLocalFileTime( &ft, &ft );   FileTimeToSystemTime( &ft, &st );   GetDateFormat( LOCALE_USER_DEFAULT, DATE_LONGDATE, &st, NULL,     szLocalDate, 255 );   GetTimeFormat( LOCALE_USER_DEFAULT, 0, &st, NULL, szLocalTime, 255 );   printf( "%s %s\n", szLocalDate, szLocalTime );				

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 188768 - 마지막 검토: 01/23/2007 19:28:47 - 수정: 3.3

Microsoft Win32 Application Programming Interface

  • kbmt kbapi kbdatetime kbfileio kbinfo kbkernbase KB188768 KbMtko
피드백
0&did=1&t=">r m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">