본문 바로가기

MFC 인터페이스

파일 사이즈 단위 자동 변환

StrFormatByteSize()

byte 단위의 파일의 사이즈를 KB, MB, GB 형식으로 자동으로 마추어 주는 함수

 

예)

532 -> 532 bytes
1340 -> 1.3KB
23506 -> 23.5KB
2400016 -> 2.4MB
2400000000 -> 2.4GB

- 기본형 -

LPTSTR StrFormatByteSize(

DWORD dw, // 변환하고자 하는 파일의 크기

LPSTR pszBuf, // 해당 사이즈로 변화되어 나온 사이즈

UINT cchBuf // 문자 pszBuf의 크기

);

- 리턴값 -

성공시 변환된 문자열의 주소, 실패시 NULL

- 추가 해더및 라이브러리 -

shlwapi.h

shlwapi.lib

- 사용법 -

#include <Windows.h>

#include <shlwapi.h> // 해더 추가

#pragma comment(lib,"shlwapi.lib") // 라이브러리 추가


int main()
{
WIN32_FIND_DATA fi;
FindFirstFile("data2.cab",&fi); // 사이즈를 확인할 파일 이름

DWORD LocalFilesize = fi.nFileSizeHigh + fi.nFileSizeLow; // 파일 사이즈 얻어오기

TCHAR szBuffer[32] = "";

StrFormatByteSize( LocalFilesize, szBuffer, 32 ); // 파일 사이즈 보기 쉽게 변환


printf("%d\n", LocalFilesize); // 변환 전 사이즈
printf("%s\n", szBuffer); / / 변환 후 사이즈


return 0;
}