今天在做大文件分割的时候,发现奇怪现象:
1.使用一个5K的文件测试分割成最大1K的文件时,能正常分割。
2.用一个2.2G的文件测试分割成最大2G的文件时,分割产生了7个2G的文件和一个小文件。
通过单步调试,发现在获取2.2G原文件大小时数据大小为17G多。
原产生错误的获取文件大小函数为:
- ULONGLONG GetFileSize(LPCTSTR szFileName)
- {
- CFileStatus fs;
- if (!CFile::GetStatus(szFileName,fs)) return 0;
- return fs.m_size;
- }
后修改为:
- ULONGLONG GetFileSize(