Dev/C++

[C++] 파일 사이즈를 바이트로 얻기 예제소스

ainory 2008. 9. 25. 01:02
컴파일 환경 : Visual Studio C++

#include <stdio.h>
#include <sys/stat.h> // _stati64()

__int64 getFileSize(char *filename);


int main(void) {

  char s[] = "test.jpg";

  printf("%s : %I64d bytes\n", s, getFileSize(s));

  return 0;
}

__int64 getFileSize(char *filename) {

  struct _stati64 statbuf;

  if ( _stati64(filename, &statbuf) ) return -1; // 파일 정보 얻기: 에러 있으면 -1 을 반환

  return statbuf.st_size;                             // 파일 크기 반환
}


_stati64() 함수는 파일에 대한 각종 정보를 얻는 함수인데, 파일 용량도 포함되어 있습니다.

64비트 정수를 다룰 수 있도록 했기 때문에, "6.22GB (6,689,140,736 바이트)"의 거대한 파일 사이즈도 측정할 수 있습니다.
6689140736 bytes
이렇게 출력됩니다.


다음의 예제 소스는 현재 디렉토리의 test.jpg 라는 파일의 크기를 출력합니다. "test.jpg" 라는 부분을 현재 디렉토리의 아무 파일명으로 교체한 후 실행하면 됩니다.