使用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个回答

 length=ff.GetLength();

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐