API
파일 사이즈 64비트로 구하는 함수
디버그정
2008. 7. 26. 01:47
// 에러시 0xFFFFFFFFFFFFFFFF 리턴
unsigned __int64 GetBigSize(HANDLE hFile)
{
if(hFile==0) return 0xFFFFFFFFFFFFFFFF; // 기본적 에러검사
DWORD dwSizeHigh, dwSizeLow;
dwSizeLow=GetFileSize(hFile, &dwSizeHigh);
// 1. GetFileSize 함수가 실패할 경우
if(dwSizeLow == 0xFFFFFFFF && GetLastError() != NO_ERROR)
return 0xFFFFFFFFFFFFFFFF;
// 2. 하이사이즈가 존재할 경우
if(dwSizeHigh)
return ((unsigned __int64)dwSizeHigh<<32)+(unsigned __int64)dwSizeLow;
// 3. 하이사이즈가 존재하지 않는 경우
return (unsigned __int64)dwSizeLow;
}