Programming/Windows&C#

[Windows/WinAPI] GetFileSizeEX, GetFileAttributes, SetFileAttributes, FileTimeToSystemTime

JMob 2013. 10. 18. 18:03
728x90
반응형

BOOL WINAPI GetFileSizeEx( _In_   HANDLE hFile,                     --------① _Out_  PLARGE_INTEGER lpFileSize           --------② );


함수 설명 : 

파일의 사이즈를 반환한다. 첫번째 인자에 해당 파일의 핸들값을 전해주면 두번째 인자에다가 파일 사이즈값을 전달한다. LARGE_INTEGER의 포인터를 넘겨주고 성공시 0이 아닌값을 반환한다.


① hFile : 

Size를 측정 할 파일은 핸들을 넘겨준다.


② IpFIleSize :

Size의 값을 저장할  LARGE_INTEGER의 포인터를 넘겨준다.


*LARGE_INTEGER의 형태?

typedef union _LARGE_INTEGER {
  struct {
    DWORD LowPart;
    LONG  HighPart;
  };
  struct {
    DWORD LowPart;
    LONG  HighPart;
  } u;
  LONGLONG QuadPart; 

} LARGE_INTEGER, *PLARGE_INTEGER; 




DWORD WINAPI GetFileAttributes(

  _In_  LPCTSTR lpFileName                                           --------①

);



함수 설명 :

함수 성공시 파일의 특성 정보를 넘겨준다. 성공시 DWORD형 반환값을 받는데 모든 정보는 비트단위로 의미가 부여되어 있다. 실패시 INVALID_FILE_ATTRIBUTES넘겨준다. 


① IpFileName : 

파일 또는 디렉토리의 PATH를 입력한다. 


AttributeMeaning
FILE_ATTRIBUTE_ARCHIVE일반 문서파일. 이 파일은 이동되거나 사라질 경우 이때의 상태를 마크한다.
FILE_ATTRIBUTE_COMPRESSED압축된 파일.
FILE_ATTRIBUTE_DIRECTORY디렉토리.
FILE_ATTRIBUTE_ENCRYPTED암호화 파일.디렉토리의 경우 이후에 생성되는 파일과 서브 디렉토리를 암호화하며 시스템 파일에는 적용안됨.
FILE_ATTRIBUTE_HIDDEN숨김 파일.
FILE_ATTRIBUTE_NORMAL일반 파일.
FILE_ATTRIBUTE_OFFLINE(캐쉬된)오프라인 파일. 이 파일은 다른곳에서 사용이 불가능하다.
FILE_ATTRIBUTE_READONLY읽기 전용 파일.
FILE_ATTRIBUTE_REPARSE_POINT조합된 재구문분석위치 파일.
FILE_ATTRIBUTE_SPARSE_FILEsparse file.디스크공간의 필요에 의하여 제한된 매우 큰 파일. (예를 들면 파일 용량은 몇기가 바이트지만 실제적인 디스크 할당 영역은 1메가 정도 밖에 안되는 파일)
FILE_ATTRIBUTE_SYSTEM시스템 파일.
FILE_ATTRIBUTE_TEMPORARY

임시 파일. 임시파일은 바로 입출력을 행하지 않고 가급적이면 메모리상에서 읽기와 쓰기를 수행하기 떄문에 일반 파일보다 속도가 빠르다. 응용프로그램은 임시파일을 사용한 후 삭제해야 한다. 





BOOL WINAPI SetFileAttributes(

  _In_  LPCTSTR lpFileName,                                                --------①

  _In_  DWORD dwFileAttributes                                             --------②

);


함수 설명 : 

지정된 파일 또는 디렉토리의 속성을 설정한다. PATH와 속성을 입력하면 된다.


① IpFIleName : 

속성을 변경시킬 파일 또는 디렉토리의 PATH를 입력한다.  


② dwFileAttributes :

속성값을 넘겨준다. 속성은 위에 참고.





BOOL WINAPI FileTimeToSystemTime(

  _In_   const FILETIME *lpFileTime,                                -------①

  _Out_  LPSYSTEMTIME lpSystemTime                             -------②

);  


함수 설명 : 

파일 시간 형식을 시스템 시간 형식으로 변환한다. 파일 시간은 우리가 보는 시간과는 다르기 때문에 확인을 할려면 변환을 시켜주어야한다. 성공시 0이 아닌값을 반환한다.


① IpFileTime :

FILETME 구조체의 포인터로 파일 시간을 담고 있다. 이 정보는 WIN32_FIND_DATA.ftCreationTime 값이다.


② IpSystemTime :

변환된 시간 정보를 담고 있는 SYSTEMTIME 구조체의 포인터를 넘겨주면 시스템 시간으로 변경하여 반환해준다.

728x90
반응형