可能重复:
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
这对于外出需求是不可行的,并且可以通过任何其他方式获取文件大小或检查文件是否包含数据
答案 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()
。