|
5.4.2 获取系统文件目录结构(3)
//初始化文件列表控件标题栏 void InitFileListTitle(void); FilesAssistantDlg.cpp //标题栏对应的ID enum FILE_ATTRIBUTE_TITLE { FILE_ATTRIBUTE_TITLE_NAME, }; /////////////////////////////////////////////////////////////////// //函数名称:InitFileListTitle //函数介绍: // 初始化文件列表标题栏 //输入参数: // 无 //输出参数: // 无 //返回值: // 无 /////////////////////////////////////////////////////////////////// void CFilesAssistantDlg::InitFileListTitle(void) { //初始化文件列表 int nColumnWidth = 300; //添加列名 m_lcFiles.InsertColumn(FILE_ATTRIBUTE_TITLE_NAME, L"名称", 0, nColumnWidth); } 在CFilesAssistantDlg::OnInitDialog中增加调用。 BOOL CFilesAssistantDlg::OnInitDialog() { …… // TODO: Add extra initialization here InitPath(); InitFileListTitle(); return TRUE; // return TRUE unless you set the focus to a control } | 执行结果如图5-18所示。
|
| 图5-18 初始化文件列表标题栏 | 增加文件列表内容,在CFilesAssistantDlg中增加以下函数。
FilesAssistantDlg.h //获取文件列表 void GetFileList(void); FilesAssistantDlg.cpp /////////////////////////////////////////////////////////////////// //函数名称:GetFileList //函数介绍: // 获取对应目录的文件列表 //输入参数: // //输出参数: // 无 //返回值: // 无 /////////////////////////////////////////////////////////////////// void CFilesAssistantDlg::GetFileList(void) { //增加过滤条件,由于是选择目录因此使用"*.*" wchar_t *strFilter = new wchar_t[MAX_PATH]; wcscpy(strFilter, m_strSearchPath); UpdateData(); wcscat(strFilter, L"*.*"); //开始查找 WIN32_FIND_DATA FindData;//用于存储找到的文件 HANDLE hFind;//存储用于查找的句柄 hFind = FindFirstFile(strFilter, &FindData); delete[] strFilter; if (INVALID_HANDLE_VALUE == hFind) { return ; } //存在目录 m_lcFiles.DeleteAllItems();//清空文件列表 do { //添加文件 if (0 == (FindData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)) { m_lcFiles.InsertItem(0,FindData.cFileName); } }while( FindNextFile(hFind, &FindData)); } | 得到如图5-19所示的结果。
|
| 图5-19 简易的文件浏览器 | 至此,我们已经完成了一个简易的文件浏览器。
【责任编辑: 云霞 TEL:(010)68476606】
|