File Size 출력 - StrFormatByteSize

파일의 크기를 출력해야 할때, 유용한 API.

LPTSTR StrFormatByteSize( LONGLONG qdw, LPWSTR pwszBuf, UINT cchBuf  );

보통, 파일크기는 정수형 변수에 Byte단위로 들어있기 때문에, 출력을 위해서는 약간의 처리가 필요하다.
(변태가 아니라면 1493021Byte보다는 1.3MB 로 보고 싶어한다 -_-)
그런데, 이 처리를 좀 쓸만하게 해 보려면 예상외로 꽤나 복잡해 진다.
Byte, KB, MB, GB 처리는 1024로 나눠가면서 하면 된다지만.. 소수점도 처리해야하고, 반올림도 싱경써야하고..

그럴땐 간단하게 이 함수를 사용해 주시면 되겠다.
파일 크기를 탐색기에서 표시되는 형태의 문자열로 변환해 준다.

  1. LPCTSTR lpszTestFile = _T("c:\\야동.avi"); // ...-_-;   
  2. // 이 코드는 파일 크기를 얻어오기 위한예제입니다. (정수형으로)   
  3. HANDLE hFile;   
  4. hFile = CreateFile(  lpszTestFile ,GENERIC_READ ,FILE_SHARE_READ ,NULL ,OPEN_EXISTING ,FILE_ATTRIBUTE_NORMAL ,NULL );   
  5. DWORD dwFileSize = GetFileSize( hFile, NULL );   
  6.   
  7. // 여기가 사용법. 참 쉽죠?(...)   
  8. TCHAR szBuffer[32];   
  9. StrFormatByteSize( dwFileSize, szBuffer, 32 );   
  10. ::MessageBox( NULL, szBuffer, _T("File size"), MB_OK );   
  11. CloseHandle( hFile );  
저작자 표시 비영리 변경 금지
Tag // ,

Trackback Address >> http://greenmaru.com/trackback/6 관련글 쓰기

Comment List

  1. BlogIcon 도꾸리 2009/04/01 13:43 address / modify or delete / reply

    부럽습니다~
    전 it쪽에는 젬병이라...
    이런 글 쓰시느 분들보면 어찌나 부러운지...
    앞으로 자주 와서 배워야겠는걸요~~

    좋은 하루되세요~

  2. BlogIcon 그린B 2009/04/01 16:50 address / modify or delete / reply

    오!! 방문 감사합니다!
    하지만 절대 부러워 하실 필요도 없고 배우려고 하시면 안되는 일이랍니다 - -;;

    도꾸리님도 즐거운 하루 되시고 자주뵈요!!

|  1  | ...  85  |  86  |  87  |  88  |  89  |  90  |  91  |  92  |  93  | ...  94  |