chenyonken 2017-07-28 04:57 采纳率: 0%
浏览 1105
已采纳

使用CFileFind::GetLength()出错

使用CFileFind::GetLength()(代码最后一部分)得到的所有搜索到的文件的大小都是0,结果如图,不知道错在哪,

DWORD CFFDlg::FileTraverInDir(LPSTR szPath)
{
    CFileFind ff;
    CString str1;
    CString str2;
    int ret=ff.FindFile(szPath,0);
    if(!ret)
    {
        str1.Format(str1,"%s下没有文件",szPath);
        AfxMessageBox(str1);
        return 0;
    }
    //获取文件的属性:文件名,大小,修改时间,文件类型和修改时间
    ret=ff.FindNextFile();//必须呼叫这个之后才能呼叫其他获取属性的函数
    do
    {

        //获取文件名
        str1=ff.GetFileName();
        ::MessageBox(NULL,str1,"文件名",MB_OK);
        //获取文件创建时间
        FILETIME ft;
        ff.GetCreationTime(&ft);
        CTime refTime(ft);
        str1.Format("%4d年%2d月%2d日 %2d:%2d:%2d",
                    refTime.GetYear(),refTime.GetMonth(),refTime.GetDay(),
                    refTime.GetHour(),refTime.GetMinute(),refTime.GetSecond());
    //  ::MessageBox(NULL,str1,"文件创建时间",0);


        //获取文件大小
        **ULONGLONG length;
        length=ff.GetLength();
        TRACE("%I64u byte(s)",length);
    //  str1.Format("%I64u byte(s)",length);
    //  ::MessageBox(NULL,str1,"文件大小",0);
**
    }while(ff.FindNextFile());//为0说明文件已到最后
    return TRUE;

}

图片说明

  • 写回答

1条回答 默认 最新

  • shen_wei 2017-07-28 08:10
    关注
     length=ff.GetLength();
    

    文件夹是获取不到文件大小的。。只能获取到 .txt .exe等具体文件的大小。。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名