MFC——获取文件夹下的所有文件并显示在CListCtrl上

Posted Forever-Road

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC——获取文件夹下的所有文件并显示在CListCtrl上相关的知识,希望对你有一定的参考价值。



//VS2015,

//CListCtrl初始化。注意该控件的View属性需要设置为Report!!!!
BOOL CloadfileServerDlg::OnInitDialog()
{
  ......
pListCtr.DeleteAllItems(); pListCtr.InsertColumn(
0, _T("文件名"), LVCFMT_CENTER, 120); pListCtr.InsertColumn(1, _T("文件类型"), LVCFMT_CENTER, 100); pListCtr.InsertColumn(2, _T("文件大小"), LVCFMT_CENTER, 140); pListCtr.InsertColumn(3, _T("存放路径"), LVCFMT_LEFT, 500);
  ......
}
//列表出文件
void CloadfileServerDlg::getFileList(char* szPath)//参数为文件夹路径,如:"C:\\\\Users\\\\ForeverRoad\\\\Desktop\\\\serverImg"
{
    pListCtr.DeleteAllItems();
    CFileFind finder;
    //建立CString对象,设置检索匹配字符串
    CString strWildcard(szPath);
    strWildcard += _T("\\\\*.*");

    //文件内部检索
    BOOL bWorking = finder.FindFile(strWildcard);
    int i; //用于定位字符,作为下标
    int index = 0;    //用于列表索引

    CString fontName, lastType, filepath,filename,filesize;//存储切割结果
    while (bWorking)
    {
        bWorking = finder.FindNextFile();
        filename = finder.GetFileName();
     //假设文件夹里面全是图片,获取图片文件长度 imageSize
= finder.GetLength(); if (filename != _T(".") && filename != _T("..")) { filepath = finder.GetFilePath(); for (i = 0;i < filename.GetLength();i++) { if (filename[i] == \'.\') { fontName = filename.Mid(0, i); lastType = filename.Mid(i+1, filename.GetLength()); filesize.Format(_T("%d"), imageSize/1024); filesize += "k"; pListCtr.InsertItem(index, fontName); pListCtr.SetItemText(index, 1, lastType); pListCtr.SetItemText(index, 2, filesize); pListCtr.SetItemText(index, 3, filepath); } } index++; } } finder.Close(); }

  文件夹内部内容,从cmd看:

  

  程序运行结果:

  

 

以上是关于MFC——获取文件夹下的所有文件并显示在CListCtrl上的主要内容,如果未能解决你的问题,请参考以下文章

MFC模拟 Windows 文件可视化系统

mfc 图片列表显示

MFC怎么查找当前目录以及子目录下的*_DS.TXT文件?

Javascript读取某文件夹下的所有文件

java 如何把一个目录下的所有.java文件复制到另一个目录下,并保持其结构不变

mfc怎么实现打开文件夹