FILETIME 구조 정보: 작업

기술 자료 번역 기술 자료 번역
기술 자료: 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 );
				

속성

기술 자료: 188768 - 마지막 검토: 2007년 1월 23일 화요일 - 수정: 3.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Win32 Application Programming Interface?을(를) 다음과 함께 사용했을 때
    • Microsoft Windows 95
    • Microsoft Windows 98 Standard Edition
    • Microsoft Windows Millennium Edition
    • Microsoft Windows NT 4.0
    • Microsoft Windows NT 3.51 서비스 팩 5
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP
키워드:?
kbmt kbapi kbdatetime kbfileio kbinfo kbkernbase KB188768 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com