GetFileSize获取文件大小错误
获取小文件没错
有一个7G的文件获取下来3个多G
求解答
[解决办法]
32位字节变量错误
你可以这样:
__int64 GetFileSize(AnsiString Filename){ TStream *stm=0; __int64 ret=-2; if(!FileEixsts(Filename))return -1; stm = new TFileStream(Filename,fmOpenRead); if(stm){ ret = stm->Size(); delete stm;} return ret;}
[解决办法]
GetFileSize还是能够取得大于2G的文件大小,如果文件大小大于2G, 大于2G的部分就放在*lpFileSizeHigh里面,注意查看MSDN帮助文档。
[解决办法]
两种方法获取4G以上的文件大小
ULARGE_INTEGER tInt1; tInt1.LowPart = GetFileSize(tHandle, &tInt1.HighPart); __int64 tFileSize1 = tInt1.QuadPart; LARGE_INTEGER tInt2; GetFileSizeEx(tHandle, &tInt2); __int64 tFileSize2 = tInt2.QuadPart;
[解决办法]
DWORD的容量是4G