使用VC实现读取指定路径下的文件,并显示所有文件的文件名和文件图标

本文介绍了如何在Windows环境下,利用VC的列表视图控件(CListCtrl)读取指定路径下的文件,并展示文件名及图标。通过创建CImageList对象设置图象列表,结合CFileFind和SHGetFileInfo API函数,实现遍历文件、获取图标并插入列表视图中。示例代码展示了具体实现步骤。

在windows系统下,当我们打开某个磁盘时,总会显示所有的文件,包括文件名和文件图标,采用VC的列表视图控件可以实现读取指定路径下的文件,并显示所有文件的文件名和文件图标。先上效果图:

接下来是具体实现:

1.创建一个对话框,并在对话框中加入一个列表视图控件,控件样式是ICON,控件关联一个变量m_ListCtrl.

2.创建CImageList类,并设定列表视图控件的图象列表,示例代码如下:

Code:
  1. m_Image.Create(GetSystemMetrics(SM_CXICON),   
  2. GetSystemMetrics(SM_CYICON),ILC_COLOR24,50,50);    
  3. m_ListCtrl.SetImageList(&m_Image,LVSIL_NORMAL);  

3.采用CFileFind类查找文件的同时,用API函数SHGetFileInfo获取文件的图标,并存放到CImageList类中,再用CListCtrl类的成员方法InsertItem把文件名和文件图标一起插入,示例代码如下:

Code:
  1. SHFILEINFO sfi;   
  2. CFileFind* fileFind=new CFileFind();   
  3. BOOL res = fileFind->FindFile("d://程序//*.*");   
  4. int i=0;   
  5. while(res)   
  6. {   
  7.     res = fileFind->FindNextFile();   
  8.     if(fileFind->IsDirectory())   
  9.           continue;   
  10.     SHGetFileInfo(fileFind->GetFilePath(),0,   
  11.         &sfi,sizeof(sfi),SHGFI_ICON);   
  12.     m_Image.Add(sfi.hIcon);   
  13.     m_ListCtrl.InsertItem(i, fileFind->GetFileName(), i);   
  14.     i++;   
  15. }  

好了,我的第一篇笔记完成了,希望大家能够多多支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值