工控编程吧
标题:
165上位机VC MFC迭代搜索文件
[打印本页]
作者:
qq263946146
时间:
2016-1-16 20:45
标题:
165上位机VC MFC迭代搜索文件
(, 下载次数: 1)
上传
点击文件名下载附件
165上位机VC MFC迭代搜索文件
功能展示
文件的搜索在上位机开发时也是常用到的功能,我们当前例程实现任何位置中文件的搜索功能,可以整个文件名搜索部分文件名搜索,后缀进行搜索,效果如图;
要点提示
文件的搜索我们可以使用类CFileFind中的成员函数为实现;主要有函数有FindFile()用于查找指定文件;FindNextFile()用于查找下一文件名,通过返回值可以判断是否是查找的文件;
IsDots() 用于判断目标文件是否是 “.”或”..”;
IsDirectory()用于判断目标文件是否是文件夹;
GetFileName()用于获取查找到的文件的文件名;
GetFilePath()用于获取查找到的文件的绝对路径;
实现功能
1.新建基于对话框的应用程序
2.拖拽一编辑框ID为IDC_EDIT1用于显示要查找的文件夹路径;
拖拽一按钮关联函数,用于浏览打开要查找的文件夹
拖拽一编辑框ID为IDC_EDIT2,用于输入要查找的文件名;
拖拽两按钮查找,停止查找,用于开始与停止 查找;
拖拽一列表框用于罗列出查找到的文件;按钮函数依次为
void CGkbc8Dlg::OnAdd()
{
BROWSEINFO bi;
char buffer[MAX_PATH];
ZeroMemory(buffer,MAX_PATH);
bi.hwndOwner=GetSafeHwnd();
bi.pidlRoot=NULL;
bi.pszDisplayName=buffer;
bi.lpszTitle="选择文件夹";
bi.ulFlags=BIF_EDITBOX;
bi.lpfn=NULL;
bi.lParam=0;
bi.iImage=0;
LPITEMIDLIST pList=NULL;
if((pList=SHBrowseForFolder(&bi))!=NULL)
{
SHGetPathFromIDList(pList,buffer);
SetDlgItemText(IDC_EDIT1,buffer);}
复制代码
void CGkbc8Dlg::OnFind()
{
m_bIsWaitStop = FALSE;
CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST1);
pListBox->ResetContent ();
CString sDir,sFileName;
GetDlgItemText(IDC_EDIT1,sDir);
GetDlgItemText(IDC_EDIT2,sFileName);
if(sDir.IsEmpty()||sFileName.IsEmpty())//空返回
return;
FindFile(sDir,sFileName);
m_bIsWaitStop = FALSE;
}
void CGkbc8Dlg::OnBtstop()
{
m_bIsWaitStop = TRUE;
}
复制代码
m_bIsWaitStop为添加的标识是否停止 搜索的变量,在单线程里意义不在;
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/7e61f8199b7f8c84b3b0f1d1d857fcbe/0/0/w_19rtdz90a9.swf-albumId=5193938909-tvId=5193938909-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4