2

重複の可能性:
C++ ファイルストリーム (fstream) を使用して、ファイルのサイズをどのように判断できますか?
Cプログラムのファイルサイズ

ファイルのサイズを取得したいので、この方法で実装しました

(void)fseek(m_fp, 0, SEEK_END); // Set the file pointer to the end of the file
pFileSize = ftell(m_fp);        // Get the file size
(void)fseek(m_fp, oldFilePos, SEEK_SET);  // Put back the file pointer at the original location

これは必要に応じて実現可能ではなく、ファイルサイズを取得したり、ファイルにデータが含まれているかどうかを確認したりする他の方法はありますか

4

3 に答える 3

6

統計を使用できます

#include <sys/types.h>
#include <sys/stat.h>
#if defined (_WIN32)
#  include <io.h> // make portable for windows
#else
#include <unistd.h>
#endif

struct stat st;
stat (filename, &st);
std::cout << st.st_size;
于 2012-10-09T07:03:10.763 に答える
0

あなたが書いたものは、必要なことを行う 100% マルチプラットフォームの方法です。stat()Unix ライクな OS またはGetFileAttributesEx()Windowsで、オペレーティング システムの呼び出しを使用して、さらに多くのことを行います。

于 2012-10-09T07:59:18.367 に答える
0

バイナリ ストリームの場合、pFileSize は oldFilePos からファイルの末尾までのバイト数です。

于 2012-10-09T07:04:37.640 に答える