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

使用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等具体文件的大小。。

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

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题