如何获取文件的大小

时间:2012-10-09 07:00:45

标签: c++ c file-io

  

可能重复:
  Using C++ filestreams (fstream), how can you determine the size of a file?
  file size in c program

我想要检索文件的大小,为此我以这种方式实现

(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

这对于外出需求是不可行的,并且可以通过任何其他方式获取文件大小或检查文件是否包含数据

3 个答案:

答案 0 :(得分:6)

您可以使用stat

#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;

答案 1 :(得分:0)

如果它是二进制流,则pFileSize是从oldFilePos到文件末尾的字节数。

答案 2 :(得分:0)

您所写的是100%多平台的方式来满足您的需求。使用操作系统的调用在类Unix操作系统上执行更多操作stat()或在Windows上执行GetFileAttributesEx()