GetFileSize 함수(fileapi.h)

지정된 파일의 크기(바이트)를 검색합니다.

GetFileSizeEx를 사용하는 것이 좋습니다.

구문

DWORD GetFileSize(
  [in]            HANDLE  hFile,
  [out, optional] LPDWORD lpFileSizeHigh
);

매개 변수

[in] hFile

파일에 대한 핸들입니다.

[out, optional] lpFileSizeHigh

파일 크기의 상위 doubleword가 반환되는 변수에 대한 포인터입니다. 애플리케이션에 상위 이중 단어가 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다.

반환 값

함수가 성공하면 반환 값은 파일 크기의 하위 이중 단어이며 , lpFileSizeHighNULL이 아닌 경우 함수는 파일 크기의 상위 doubleword를 해당 매개 변수가 가리키는 변수에 넣습니다.

함수가 실패하고 lpFileSizeHighNULL이면 반환 값이 INVALID_FILE_SIZE. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다. lpFileSizeHighNULL이면 대용량 파일에 대해 반환된 결과가 모호하며 파일의 실제 크기를 확인할 수 없습니다. 대신 GetFileSizeEx를 사용하는 것이 좋습니다.

함수가 실패하고 lpFileSizeHighNULL이 아닌 경우 반환 값은 INVALID_FILE_SIZEGetLastErrorNO_ERROR 이외의 값을 반환합니다.

설명

GetFileSize 함수는 파이프 또는 통신 디바이스와 같이 수신하지 않는 디바이스의 핸들과 함께 사용할 수 없습니다. hFile의 파일 형식을 확인하려면 GetFileType 함수를 사용합니다.

GetFileSize 함수는 압축되지 않은 파일 크기를 검색합니다. GetCompressedFileSize 함수를 사용하여 압축된 파일의 크기를 가져옵니다.

반환 값이 INVALID_FILE_SIZE(0xffffffff )인 경우 애플리케이션은 GetLastError 를 호출하여 함수가 성공했는지 또는 실패했는지 확인해야 합니다. 함수가 실패할 수 있는 이유는 lpFileSizeHighNULL 이 아니거나 파일 크기가 0xffffffff 수 있기 때문입니다. 이 경우 GetLastError 는 성공하면 NO_ERROR (0)를 반환합니다. 이 동작으로 인해 대신 GetFileSizeEx를 사용하는 것이 좋습니다.

거래된 작업: 파일 핸들에 바인딩된 트랜잭션이 있는 경우 함수는 격리된 파일 뷰에 대한 정보를 반환합니다.

Windows 8 및 Windows Server 2012에서 이 함수는 다음 기술을 통해 지원됩니다.

기술 지원됨
SMB(서버 메시지 블록) 3.0 프로토콜 Yes
SMB 3.0 TFO(투명 장애 조치(failover)) Yes
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 Yes
CsvFS(클러스터 공유 볼륨 파일 시스템) Yes
ReFS(Resilient File System)
 

예제

예제는 파일 내에서 보기 만들기를 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 fileapi.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

파일 관리 함수

GetCompressedFileSize

GetFileSizeEx

GetFileType