工控编程吧
标题:
177上位机VC MFC删除指定类型文件
[打印本页]
作者:
qq263946146
时间:
2016-1-19 21:28
标题:
177上位机VC MFC删除指定类型文件
(, 下载次数: 1)
上传
点击文件名下载附件
177上位机VC MFC删除指定类型文件
功能展示
有时我们要删除指定文件夹内指定的类型文件,比如要删除后缀为.CPP或.H或.TXT的文件,我们就得在目录内迭代查找与删除文件,我们当前例程实现这一功能,效果如图;
要点提示
文件夹内文件的迭代查找可以用CFileFind的成员函数来完成;
查找的文件后缀有分大小写,可以使用Cstring类的MakeLower(),MakeUpper()实现大写,小写的转变;
文件的删除可以用函数DeleteFile()实现
实现功能
1.新建基于对话框的应用程序
2.拖拽两编辑框ID为IDC_EDIT2,IDC_EDIT1用于输入要查找的文件名及查找目录;
拖拽一按钮<浏览>用于浏览查找的目录,拖拽按钮<删除>用于删除已打开的文件;
拖拽一列表框ID为IDC_LIST1,用于罗列出已删除的文件路径;
按钮函数为
void CGkbc8Dlg::OnExplor()
{
BROWSEINFO bif;
char buf[MAX_PATH];
ZeroMemory(buf,MAX_PATH);
bif.hwndOwner= GetSafeHwnd();
bif.iImage=0;
bif.lParam=0;
bif.lpfn=NULL;
bif.lpszTitle="Choose Folder";
bif.pidlRoot=0;
bif.pszDisplayName=buf;
bif.ulFlags=BIF_EDITBOX;
LPITEMIDLIST pList=NULL;
pList=SHBrowseForFolder(&bif);
if(NULL!=pList)
{
SHGetPathFromIDList(pList,buf);
SetDlgItemText(IDC_EDIT2,buf);
}
}
复制代码
void CGkbc8Dlg::OnDelete()
{
CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST1);
pListBox->ResetContent();
CString sPathName,sFileName;
GetDlgItemText(IDC_EDIT1,sFileName);
GetDlgItemText(IDC_EDIT2,sPathName);
FindFile(sPathName,sFileName);
//
CString sPath;
int nCount = pListBox->GetCount();
for(int i=0;i<nCount;i++)
{
pListBox->GetText(i,sPath);
DeleteFile(sPath);
}
}
BOOL CGkbc8Dlg::FindFile(CString sDir,CString sFileName)
{
CString sTemp;//路径改为\*.*形式
if(sDir.Right(1)!="\")
sTemp.Format("%s\\*.*",sDir);
else
sTemp.Format("%s*.*",sDir);
//
CString sFindFileName;//找到的文件名
CFileFind findfile;
BOOL bfind=findfile.FindFile(sTemp);
while(bfind)
{
bfind=findfile.FindNextFile();
sFindFileName = findfile.GetFileName();
sFileName.MakeUpper();
CString sUFileName = sFileName;//大写
sFileName.MakeLower();
CString sLFileName = sFileName;//小写
复制代码
if(sFileName==sFindFileName||sFindFileName.Find(sLFileName)!=-1||sFindFileName.Find(sUFileName)!=-1)
{
CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST1);
pListBox->AddString(findfile.GetFilePath());
}
if(findfile.IsDirectory()&&!findfile.IsDots())
{
FindFile(findfile.GetFilePath(),sFileName);
}
}
return bfind;
}
复制代码
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/c70a0ba5d04534ba34f9109887401e32/0/0/w_19rteaw9v1.swf-albumId=5226081409-tvId=5226081409-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4