如何获取大于4G的文件大小
本人是初学C++,请各位帮忙。
用FindFirstFile来获取文件大小,在MSDN上看到用(nFileSizeHigh * (MAXDWORD+1)) + nFileSizeLow来获取文件大小,但编译的时候出现溢出警告,有什么办法能正确获取超大文件的大小呢,小于4G的就不用说了。
[解决办法]
分割读取,然后在归并
[解决办法]
用C标准库函数即可。
FILE *fp;fpos_t pos;fp = fopen(...);fseek(fp, 0, SEEK_END);fgetpos(fp, &pos);
[解决办法]
什么溢出警告,是不是int 32位溢出的警告,用64位整数, __INT64.
[解决办法]
__INT64 RealSize = ((__INT64)nFileSizeHigh * (MAXDWORD+1)) + (__INT64)nFileSizeLow;