这是确定文件大小的众所周知的方法:
// Open file and get file size
int FileSize;
std::fstream myFile;
myFile.open(myFileName, std::ios::in|std::ios::binary);
if (myFile.is_open())
{
myFile.seekg(0, std::ios::end);
FileSize = myFile.tellg();
myFile.seekg(0, std::ios::beg);
myFile.close();
}
但我想知道程序失败的条件是什么? x32和x64窗口支持的最大文件大小是多少? 当我在x32上可以使用超过2Gb的文件?我需要将int64用于FileSize吗?
更新
根据this
ftell和fseek中带符号的32位整数偏移的限制是 2 ^ 31-1 = 2147483647,大约2GB。