mfc怎么读取文件夹中文件的名字

mfc怎么读取文件夹中文件的名字,第1张

void DelFiles(CString&strDirPath, CString strFileName, BOOL bDelAll) { CFileFind FileFinderstrDirPath = strDirPath + _T("\\")CString strFilePath = strDirPath + strFileNamewhile (TRUE) { if (FileFinder.FindFile(strFilePat...

这个满足你的要求s返回文件路径#defineDLG_FILTER"ALLFiles(*.*)|*.*||"#defineDLG_EXT"*"CFileDialogdlg(TRUE,_T(DLG_EXT),NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,_T(DLG_FILTER))if(dlg.DoModal()==IDOK){POSITIONpos=dlg.GetStartPosition()while(pos!=0){CStrings=dlg.GetNextPathName(pos)}}下面代码,可以选择文件夹,会返回文件夹的路径需要自己查找每个文件char*GetPath(HWNDhWnd,char*pBuffer){BROWSEINFObfLPITEMIDLISTlpitemmemset(&bf,0,sizeofBROWSEINFO)bf.hwndOwner=hWndbf.lpsztitle="选择路径"bf.ulFlags=BIF_RETURNONLYFSDIRS//属性你可自己选择lpitem=SHBrowseForFolder(&bf)if(lpitem==NULL)//如果没有选择路径则返回0return0//如果选择了路径则复制路径,返回路径长度SHGetPathFromIDList(lpitem,pBuffer)returnpBuffer}

在MFC中,使用CFileFind类,可以枚举一个目录下的所有文件和子目录

示例:

void ListFolder(const CString & sPath)

{

    CFileFind ff   

    BOOL bFound = ff.FindFile(sPath + "\\*.*")

    while(bFound)

    {

        bFound = ff.FindNextFile()

        if(ff.IsDirectory())  //是目录

        {

            if(!ff.IsDots()) //不是本级目录或父目录(.和..)

                ListFolder(ff.GetFilePath()) //递归子目录

        }

        else

        {

            AfxMessageBox("文件:" + ff.GetFilePath())

        }

    }

    ff.Close()

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11997206.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存