ファイルサイズの取得方法
ファイルサイズを知りたいのですが、そのための関数を教えてください。
C言語にはファイルサイズを知るための関数はありません。
ファイルサイズを知るには、ファイルを開いてからファイルポインタを移動して求めます。
fpos_t はデータのサイズを意味する変数で、実態は符号なしの整数値です。int に変えてもさほど問題はありません。
また、上記の処理で、ファイルポインタ、つまり現在の読み取り位置が変化してしまうので、下記のようにして戻します。
ファイルサイズを知るには、ファイルを開いてからファイルポインタを移動して求めます。
sum.c
fpos_t GetFileSize(const char* FileName[])
{
fpos_t fsize = 0;
FILE* fp = fopen(FileName, "rb");
/* ファイルサイズを調査 */
fseek(fp, 0, SEEK_END);
fgetpos(fp, &fsize);
fclose(fp);
return fsize;
}
fpos_t はデータのサイズを意味する変数で、実態は符号なしの整数値です。int に変えてもさほど問題はありません。
また、上記の処理で、ファイルポインタ、つまり現在の読み取り位置が変化してしまうので、下記のようにして戻します。
sum.c
fpos_t fsize = 0;
fpos_t fsizeb = fseek(fp,0,SEEK_END);
fgetpos(fp,&fsize);
fseek(fp,fsizeb,SEEK_SET);
本サイトについて
苦しんで覚えるC言語(苦C)はC言語入門サイトの決定版です。
C言語の基本機能を体系立てて解説しており、
市販書籍と同等以上の完成度です。




