컴파일 환경 : 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" 라는 부분을 현재 디렉토리의 아무 파일명으로 교체한 후 실행하면 됩니다.
#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" 라는 부분을 현재 디렉토리의 아무 파일명으로 교체한 후 실행하면 됩니다.