• ベストアンサー

ファイルサイズを得る関数

を探しています 例えばファイル"x.bin"のファイルサイズを求める関数を教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.2

>標準関数 int filesize; FILE* fp1 = fopen( "file.txt", "rb" ); fseek( fp, 0L, SEEK_END ); filesize = ftell( fp ); fclose( fp ); >STL系 std::fstream fs; fs.open("file.txt" std::ios::binary); fs.seekg(0, std::ios::end ); int filesize = fs.tellg(); fs.close();

keyguy
質問者

補足

ありがとうございます つかわせていただきます

その他の回答 (1)

  • utf7
  • ベストアンサー率29% (11/37)
回答No.1

C言語だとすると、sys/stat.hに定義されているstat構造体のst_sizeで取得することが出来ます。取得に仕方としては、 struct stat buf; stat("x.bin", &buf); /* ファイルはフルパスで記入 */ printf("ファイルサイズは%dです。\n", (int)buf.st_size); となります。

keyguy
質問者

補足

あいがとうございます STL系ではないのでしょうか? 今は仕方なくAPIを使っていて以下のようにしています unsigned Size; HANDLE hFile; hFile=CreateFile("x.bin",0,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); Size=GetFileSize(hFile,NULL); CloseHandle(hFile);

関連するQ&A