



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VC+实现Windows回收站的文件存取在进行文件操作时,可以使用CFile类中的Remove()函数来删除一个文件,但是这样的操作将永久性的删除该文件,不能在必要的时候再恢复该文件,解决这个问题的唯一方法就是把文件送到Windows系统中的回收站(Recycle Bin)里面,而不是简单的永久性删除它,这样用户就可以在必要的时候恢复这个文件。这个例子就来说明如何实现编程来实现Windows回收站的文件存取操作。 一、实现方法 在Windows的shellapi文件中定义了一个名为SHFileOperation()的外壳函数,用它可以实现各种文件操作,如文件的拷贝、删除、移动等,该函数使用起来非常简单,它只有一个指向SHFILEOPSTRUCT结构的参数。使用SHFileOperation()函数时只要填写该专用结构-SHFILEOPSTRUCT,告诉Windows执行什么样的操作,以及其它重要信息就行了。SHFileOperation()的特别之处在于它是一个高级外壳函数,不同于低级文件处理。当调用SHFileOperation操作文件时,相应的外壳拷贝处理器(如果有的话)被调用。如在删除某个文件时,SHFileOperation会将删除的文件放到Recycle Bin中。SHFileOperation()函数的原形为: WINSHELLAPI int WINAPI SHFileOperation (LPSHFILEOPSTRUCT lpFIleOp); 函数中参数类型为一个LPSHFILEOPSTRUCT结构,它包含有进行文件操作的各种信息,其具体的结构如下: Typedef struct _ShFILEOPSTRUCT HWND hWnd; /消息发送的窗口句柄; UINT wFunc; /操作类型 LPCSTR pFrom; /源文件及路径 LPCSTR pTo; /目标文件及路径 FILEOP_FLAGS fFlags; /操作与确认标志 BOOL fAnyOperationsAborted; /操作选择位 LPVOID hNameMappings; /文件映射 LPCSTR lpszProgressTitle; /文件操作进度窗口标题 SHFILEOPSTRUCT, FAR * LPSHFILEOPSTRUCT; 在这个结构中,hWnd是指向发送消息的窗口句柄,pFrom与pTo是进行文件操作的源文件名和目标文件名,它包含文件的路径,对应单个文件的路径字符串,或对于多个文件,必须以NULL作为字符串的结尾或文件路径名之间的间隔,否则在程序运行的时候会发生错误。另外,pFrom和pTo都支持通配符*和?,这大大方便了开发人员的使用。例如,源文件或目录有两个,则应是:char pFrom=d:Test10d:Text.txt0,它表示对要D:盘Test目录下的所有文件和D:盘上的Text.txt文件进行操作。字符串中的是C语言中的的转义符,0则是NULL。wFunc 是结构中的一个非常重要的成员,它代表着函数将要进行的操作类型,它的取值为如下: FO_COPY: 拷贝文件pFrom到pTo 的指定位置。 FO_RENAME: 将pFrom的文件名更名为pTo的文件名。 FO_MOVE: 将pFrom的文件移动到pTo的地方。 FO_DELETE: 删除pFrom指定的文件。 使用该函数进行文件拷贝、移动或删除时,如果需要的时间很长,则程序会自动在进行的过程中出现一个无模式的对话框(Windows操作系统提供的文件操作对话框),用来显示执行的进度和执行的时间,以及正在拷贝、移动或删除的文件名,此时结构中的成员lpszProgressTitle显示此对话框的标题。fFlags是在进行文件操作时的过程和状态控制标识。它主要有如下一些标识,也可以是其组合: FOF_FILESONLY:执行通配符,只执行文件; FOF_ALLOWUNDO:保存UNDO信息,以便在回收站中恢复文件; FOF_NOCONFIRMATION:在出现目标文件已存在的时候,如果不设置此项,则它会出现确认是否覆盖的对话框,设置此项则自动确认,进行覆盖,不出现对话框。 FOF_NOERRORUI:设置此项后,当文件处理过程中出现错误时,不出现错误提示,否则会进行错误提示。 FOF_RENAMEONCOLLISION:当已存在文件名时,对其进行更换文提示。 FOF_SILENT:不显示进度对话框。 FOF_WANTMAPPINGHANDLE:要求SHFileOperation()函数返回正处于操作状态的实际文件列表,文件列表名柄保存在hNameMappings成员中。 SHFILEOPSTRUCT结构还包含一个SHNAMEMAPPING结构的数组,此数组保存由SHELL计算的每个处于操作状态的文件的新旧路径。 在使用该函数删除文件时必须设置SHFILEOPSTRUCT结构中的神秘FOF_ALLOWUNDO标志,这样才能将待删除的文件拷到Recycle Bin,从而使用户可以撤销删除操作。需要注意的是,如果pFrom设置为某个文件名,用FO_DELETE标志删除这个文件并不会将它移到Recycle Bin,甚至设置FOF_ALLOWUNDO标志也不行,在这里你必须使用全路径名,这样SHFileOperation才会将删除的文件移到Recycle Bin。 二、编程步骤 1、 启动Visual C+6.0,生成一个单文档视图的项目FileDelete; 2、为项目添加一个菜单ID_FileDelete,然后用Visual C+的Class Wizard为其在视图类新增消息处理函数OnFileDelete(); 3、添加代码,编译运行程序; 三、程序代码 / void CFileOperationView:OnFileDelete() int nOk; char strSrc=d:Vb0;/源文件路径; char strDst=d:Vb10;/目标文件路径; char strTitle=文件拷贝; /文件删除进度对话框标题 SHFILEOPSTRUCT FileOp;/定义SHFILEOPSTRUCT结构对象; FileOp.hwnd=this- m_hWnd; FileOp.wFunc=FO_DELETE; /执行文件删除操作; FileOp.pFrom=strSrc; FileOp.pTo=strDst; FileOp.fFlags=FOF_ALLOWUNDO;/此标志使删除文件备份到Windows回收站 FileOp.hNameMappings=NULL; FileOp.lpszProgressTitle=strTitle; /开始删除文件 nOk=SHFileOperation(&FileOp); if(nOk) TRACE(There is an error: %dn,nOk); else TRACE(SHFileOperation finished successfullyn); 四、小结 在Visual C+编程中实现文件的操作是很多应用程序要涉及到的内容,解决这个问题的一般方法是直接利用CFile 类的操作成员函数,这种方法对于广大Visual C+编程爱好者来说已经耳熟能详了,其实使用我们上文介绍的方法,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 秦皇岛市中医院社区健康诊断能力考核
- 秦皇岛市中医院疼痛医学科主任医师资格认证
- 2025中心医院脊柱半椎体切除技术资格认证
- 2025内蒙古土地资源收储投资(集团)有限公司常态化招聘50名急需紧缺专业人员的(第十二批)模拟试卷及答案详解(历年真题)
- 张家口市中医院数据统计与医疗报表制作基础技能考核
- 2025年河南省中医院(河南中医药大学第二附属医院)招聘博士研究生64人考前自测高频考点模拟试题(含答案详解)
- 2025年甘肃医学院招聘事业编制专业技术人员13人(第一批)模拟试卷附答案详解(典型题)
- 2025吉林农业大学招聘博士及急需紧缺人才80人(1号)模拟试卷参考答案详解
- 邢台市中医院神经阻滞麻醉技术准入考核
- 上海市中医院甲状腺日间手术管理能力考核
- 黑布林英语阅读初一年级16《柳林风声》译文和答案
- 特殊儿童融合教育档案
- 各种汉服款式剪裁图大全
- GB/T 6391-2003滚动轴承额定动载荷和额定寿命
- GB/T 36112-2018政务服务中心服务现场管理规范
- GB/T 28733-2012固体生物质燃料全水分测定方法
- GB/T 18591-2001焊接预热温度、道间温度及预热维持温度的测量指南
- 儿童和青少年社会工作伦理课件
- 国家外汇管理局国际收支申报培训课件
- 血管活性药物课件
- 四年级上册心理健康教育教案 -全册教案 通用版
评论
0/150
提交评论