5.4.2 获取系统文件目录结构(3)

2013-10-07 00:47:49 · 作者: · 浏览: 61

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】

回书目   上一节   下一节