본문 바로가기

API / MFC/Function Information

[windows] WIN32_FIND_DATA Structure

FindFirstFile, FindFirstFileEx, FindNextFile 함수로 찾은 파일에 대한 정보가 들어 있음

typedef struct _WIN32_FIND_DATA {
  DWORD    dwFileAttributes;
  FILETIME ftCreationTime;
  FILETIME ftLastAccessTime;
  FILETIME ftLastWriteTime;
  DWORD    nFileSizeHigh;
  DWORD    nFileSizeLow;
  DWORD    dwReserved0;
  DWORD    dwReserved1;
  TCHAR    cFileName[MAX_PATH];
  TCHAR    cAlternateFileName[14];
} WIN32_FIND_DATA, *PWIN32_FIND_DATA, *LPWIN32_FIND_DATA;



dwFileAttributes
    검색한 파일의 파일 속성값이 있음
    가능한 값이나 특성은
http://msdn.microsoft.com/en-us/library/ms915521.aspx 참조

ftCreationTime 
    파일 또는 디렉토리가 생성된 일시가 저장된 FILETIME 구조체
    만약 기본 파일 시스템의 생성 시간이 지원되지 않을 경우 값은 0

ftLastAccessTime 
    FILETIME 구조체
    파일일 경우 구조체에 파일의 마지막 읽은시간, 쓴 시간, 실행시간이 저장되어 있음
    폴더일 경우 구조체에 폴더가 생성된 시간이 저장됨
    만약 기본 파일 시스템에 마지막 액세스 시간이 지원되지 않는다면, 값을 0으로 지정
    FAT 파일 시스템에서 파일이나 폴더의 정확한 시간이 지정됨 그러나 항상 시간은 24시로 됨

ftLastWriteTime 
    FILETIME 구조체
    파일일 경우 구조체에 파일을 마지막으로 쓴 시간, 수정, 겹쳐 쓴 시간 
    예를 들어 WriteFile 나 SetEndOfFile 사용할 경우
    파일 속성 또는 보안기술관련 수정을 하였을 경우 날짜나 시간은 수정안함
    폴더일 경우, 구조체에 폴더를 생성한 시간이 저장됨
    만약 기본 파일 시스템에 마지막 마지막 쓰기 시간이 지원되지 않는다면, 값을 0으로 지정

nFileSizeHigh 

    BYTE단위의 파일크기를 상위 DWORD 값 저장
    이 값은 파일 크기가 MAXDWORD보다 크기 않는 이상 0임
    파일크기는 (nFileSizeHigh * (MAXDWORD+1)) + nFileSizeLow 임

nFileSizeLow 
    BYTE단위의 파일크기를 하위 DWORD 값 저장

dwReserved0 
    만약 dwFileAttributes 멤버에 FILE_ATTRIBUTE_REPARSE_POINT 속성을 포함하고 있으면 
        이 멤버는 reparse 포인터 태그가 지정됨
    그렇지 않으면 이 값은 정해지지 않거나 사용할 수 없음
    reparse 포인터 태그의 정보를 보면,
          ┃
          ┣> IO_REPARSE_TAG_DFS            ( 0x8000000A )
          ┣> IO_REPARSE_TAG_DFSR           ( 0x80000012 )
          ┣> IO_REPARSE_TAG_HSM            ( 0xC0000004 )
          ┣> IO_REPARSE_TAG_HSM2           ( 0x80000006 )
          ┣> IO_REPARSE_TAG_MOUNT_POINT    ( 0xA0000003 )
          ┣> IO_REPARSE_TAG_SIS            ( 0x80000007 )
          ┗> IO_REPARSE_TAG_SYMLINK        ( 0xA000000C )

dwReserved1 

    나중에 사용하도록 예약

cFileName 
    파일 이름 저장

cAlternateFileName 
    파일의 대체이름
    이 이름은 클래식 8.3 파일 이름 형식임



참고 :
http://msdn.microsoft.com/en-us/library/aa365740(VS.85).aspx