工控编程吧
标题:
162上位机VC MFC删除指定文件到回收站
[打印本页]
作者:
qq263946146
时间:
2016-1-13 22:55
标题:
162上位机VC MFC删除指定文件到回收站
(, 下载次数: 4)
上传
点击文件名下载附件
162上位机VC MFC删除指定文件到回收站
功能展示
文件的删除操作也是一个程序很常用的功能,删除文件的方法很多,有直接删除,也有删除到回收站,以防误删操作;我们当前例程实现指定文件删除到回收站功能,效果如图,浏览指定要删除的文件后,点击删除便可;
要点提示
我们当前用到的文件删除函数为SHFileOperation();此函数用于删除,移动和复制重命名文件的操作;函数原型为WINSHELLAPIint WINAPI SHFileOperation( LPSHFILEOPSTRUCT lpFileOp );它跟随一个结构体参数,查阅MSDN可知晓此结构体的成员变量含义;
Wndw,拥有者窗口句柄; wFunc文件操作功能,我们例程使用FO_DELETE进行文件删除工作;pFrom 要删除的文件路径;pTo目标文件我们当前例程设为NUUL指向回收站; fFlag文件控制标识;fAnyOperationsAborted标识用户是否可中断操作;hNameMappings指向一个SHNAMEMAPPING结构体指针 ;lpszProgressTile进行标题;
要注意的是 结构体的pFrom,pTo需以“\0”结尾,不然删除文件失败;具体用法参照例程
实现功能
1.新建基于对话框的应用程序
2.拖拽编辑框控件ID默认为IDC_EDIT1,拖拽浏览文件,删除文件按钮,关联函数
void CGkbc8Dlg::OnButton1()
{
CFileDialog Dlg(true,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"All Files(*.*)|*.*| |",AfxGetMainWnd());
if(Dlg.DoModal()==IDOK)
{
CString sText= Dlg.GetPathName();
SetDlgItemText(IDC_EDIT1,sText);
}
}
复制代码
void CGkbc8Dlg::OnButton2()
{
CString sPath;
GetDlgItemText(IDC_EDIT1,sPath);
if(sPath.IsEmpty())//编辑框没内容
return;
char fileName[_MAX_PATH]="\0";
strcpy(fileName,sPath);
strcat(fileName,"\0");
SHFILEOPSTRUCT shfile;
ZeroMemory((void*)&shfile,sizeof(SHFILEOPSTRUCT));
shfile.hwnd = 0;
shfile.wFunc = FO_DELETE;
shfile.pFrom = fileName;
shfile.pTo = NULL;
shfile.fFlags = FOF_ALLOWUNDO;
shfile.hNameMappings = NULL;
shfile.lpszProgressTitle =NULL ;
SHFileOperation(&shfile);//执行删除
}
复制代码
我们来演示下功能实现的整个过程
[iqiyi]http://player.youku.com/player.php/sid/XMTQ0Mzk0MTM4NA==/v.swf[/iqiyi]
[iqiyi]http://player.video.qiyi.com/ad0c387d6c9a86cd090c4ba7ea90f320/0/0/w_19rte9jknt.swf-albumId=5177689909-tvId=5177689909-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4