C言語 ファイル位置の取得 ファイルサイズの取得 - stdio.h - [ ftell ]
2008.09.28 Sunday | by LRESULT
指定したファイル「test.txt」のファイルサイズを取得します。 |
---|
#include <stdio.h> int main(void) { FILE *fp; char *fname = "test.txt"; long sz; fp = fopen( fname, "rb" ); if( fp == NULL ){ printf( "%sファイルが開けません¥n", fname ); return -1; } fseek( fp, 0, SEEK_END ); sz = ftell( fp ); printf( "%sファイルのサイズ:%d バイト", fname, sz ); fclose( fp ); return 0; } |
test.txtファイルのサイズ:50 バイト |
---|
というように、「test.txt」ファイルのサイズが表示されるはずです。 まず、fseek()でファイル終端(SEEK_END)までファイル位置を移動させ、 ftell()で、現在のファイル位置を取得しています。 それと、fopen()で開く際には、バイナリモードで開くようにしましょう。 環境によって変わるらしいですが、バイナリモードのほうが確実です。 今回はftell()を使用しましたが、 long型のftell()よりも、fpos_t型のfgetpos()を使用したほうが 2GBを超えるファイルを扱える為、確実だと思います。 |