将文件夹中文件显示到list control上(MFC)

在打开数据库时为了便捷的查看目前已经有了哪些数据库,这是就需要给用户展示已存在的数据库名, 这时就需要从文件夹里读取数据库文件并显示到list control上

void CMy528Update_MfcDlg::OnBnClickedButton1()   //将数据库名显示在list control上
{
	// TODO: 在此添加控件通知处理程序代码
    if(m_list1.GetItemCount() == 0)  //判断列表项是否存在
	{
		m_list1.InsertColumn(0,_T("名称"));
		m_list1.InsertColumn(1,_T("大小"));
		m_list1.InsertColumn(2,_T("时间"));
	}	
	CRect  rect;
	m_list1.SetExtendedStyle(m_list1.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES );
	m_list1.GetClientRect(&rect);

	m_list1.SetColumnWidth(0,rect.Width()/3);
	m_list1.SetColumnWidth(1,rect.Width()/3);
	m_list1.SetColumnWidth(2,rect.Width()/3);

	CFileFind finder;
	BOOL bWorking = finder.FindFile(_T("E:\\vs文档\\528Update_Mfc\\528Update_Mfc\\*.db"));//文件路径自己设置
	m_list1.DeleteAllItems(); //  删除listcontrol中显示的数据,不会删除列表项
	while (bWorking)
	{
		bWorking = finder.FindNextFile();
		TRACE(_T("%s\n"), (LPCTSTR)finder.GetFileName());
		CString FileName = finder.GetFileName();//文件名
		int Index = m_list1.InsertItem(0xffff,_T(""));
		m_list1.SetItemText(Index,0,FileName);

		ULONGLONG size = finder.GetLength()/1024+1;  //文件大小
		//	ULONGLONG FileLen = finder.GetLength();   //文件大小
		CString filelen;
		filelen.Format(_T("%dKB"),size);
		m_list1.SetItemText(Index,1,(LPCTSTR)filelen);

		CTime tempTime;
		CString str1;
		finder.GetCreationTime(tempTime);//创建时间
		str1 = tempTime.Format(_T("%Y/%m/%d %H:%M:%S"));

		m_list1.SetItemText(Index,2,str1);
	}
}

这里我的按钮名为IDC_BUTTON1,list control名为m_list1,可以根据实际情况改动

下面附上我的运行界面

将文件夹中文件显示到list control上(MFC)_第1张图片

希望可以帮到你

如果对我做的界面有需求,可以看下点击打开链接

你可能感兴趣的:(MFC,MFC)