获取文件大小问题

jiu6332356 2013-07-18 12:34:56
FILEINFO FileInfo;
// 获取文件信息
AnalysisFile(path,FileInfo);
//这是一个循环用来一遍传文件一边显示百分比的
g_pos=((SendSize+dwCurrentRead*i))/(FileInfo.Size/100);//得到传送的百分比

我用上面代码获取一个2.3G文件大小结果出来是个负数 求高手解释

FileInfo.Size 出来是:-1807584484 我网上查了哈发现这是ULONGLONG 类型的然后我转化了 也转对了 想问问高手 他们怎样计算才能的到正确的百分比。如:
g_pos因为FileInfo.Size是一个负值 所有相除结果肯定不对!求高手正确方法。

...全文
187 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jindaodaxia 2013-07-18
  • 打赏
  • 举报
回复
支持4G以上文件大小计算 __int64 FileUtil::GetFileSize( LPCTSTR szFile ) { LARGE_INTEGER li64; li64.QuadPart = 0; HANDLE hFile = ::CreateFile(szFile, GENERIC_READ, FILE_SHARE_WRITE|FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile!=INVALID_HANDLE_VALUE) { li64.LowPart = ::GetFileSize(hFile, (LPDWORD)&li64.HighPart);//单位Bytes ::CloseHandle(hFile); } return li64.QuadPart; }
jiu6332356 2013-07-18
  • 打赏
  • 举报
回复
引用 4 楼 fengqinqdca 的回复:
获取文件大小 CFile file; file.Open("路径",CFile::modeRead); DWORD Length=file.GetLength();
大哥我要的是他们之间的怎么运算想要得到百分比
华美乐章 2013-07-18
  • 打赏
  • 举报
回复
获取文件大小 CFile file; file.Open("路径",CFile::modeRead); DWORD Length=file.GetLength();
jiu6332356 2013-07-18
  • 打赏
  • 举报
回复
jiu6332356 2013-07-18
  • 打赏
  • 举报
回复
jiu6332356 2013-07-18
  • 打赏
  • 举报
回复
有人没有?

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧