GetFileSize 함수(fileapi.h)
지정된 파일의 크기(바이트)를 검색합니다.
GetFileSizeEx를 사용하는 것이 좋습니다.
DWORD GetFileSize(
[in] HANDLE hFile,
[out, optional] LPDWORD lpFileSizeHigh
);
[in] hFile
파일에 대한 핸들입니다.
[out, optional] lpFileSizeHigh
파일 크기의 상위 doubleword가 반환되는 변수에 대한 포인터입니다. 애플리케이션에 상위 이중 단어가 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다.
함수가 성공하면 반환 값은 파일 크기의 하위 이중 단어이며 , lpFileSizeHigh 가 NULL이 아닌 경우 함수는 파일 크기의 상위 doubleword를 해당 매개 변수가 가리키는 변수에 넣습니다.
함수가 실패하고 lpFileSizeHigh 가 NULL이면 반환 값이 INVALID_FILE_SIZE. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다. lpFileSizeHigh가 NULL이면 대용량 파일에 대해 반환된 결과가 모호하며 파일의 실제 크기를 확인할 수 없습니다. 대신 GetFileSizeEx를 사용하는 것이 좋습니다.
함수가 실패하고 lpFileSizeHigh 가 NULL이 아닌 경우 반환 값은 INVALID_FILE_SIZEGetLastError 는 NO_ERROR 이외의 값을 반환합니다.
GetFileSize 함수는 파이프 또는 통신 디바이스와 같이 수신하지 않는 디바이스의 핸들과 함께 사용할 수 없습니다. hFile의 파일 형식을 확인하려면 GetFileType 함수를 사용합니다.
GetFileSize 함수는 압축되지 않은 파일 크기를 검색합니다. GetCompressedFileSize 함수를 사용하여 압축된 파일의 크기를 가져옵니다.
반환 값이 INVALID_FILE_SIZE(0xffffffff )인 경우 애플리케이션은 GetLastError 를 호출하여 함수가 성공했는지 또는 실패했는지 확인해야 합니다. 함수가 실패할 수 있는 이유는 lpFileSizeHigh 가 NULL 이 아니거나 파일 크기가 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 |