2012/06/02

C言語 ファイルサイズの取得

ドラッグ&ドロップしたファイルのサイズを取得するプログラム。

wavファイルのサイズを取得

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
  FILE *fpr;
  int fileSize;
  fpr = fopen(argv[1], "rb");
  if (fpr == NULL){
      printf("error rb");
      getchar();
      exit(EXIT_FAILURE);
  }
  /*ファイルポインタをファイル終端位置に設定 */
  fseek(fpr, 0L, SEEK_END);
  /* ファイルポインタの位置を取得 */
  fileSize = ftell(fpr);
  /* ポインタ位置 = ファイルサイズ */
  printf("filesize: %s = %d byte\n",argv[1], fileSize);
  fclose(fpr);
  printf("success\n"); 
  getchar();
  return 0;
}
ポインタの位置情報からサイズを取得している。fseek()でポインタをファイルの終端に移動して、ftell()で位置を取得する。位置はそのまま先端からのバイト数なので、そのままファイルサイズとみなしている。
filesize: C:\sample.wav = 352844 byte
success

C言語 ANSI C89 Meadow & MinGW GCC 目次はこちら