Chinaunix首页 | 论坛 | 博客
  • 博客访问: 744002
  • 博文数量: 769
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4985
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 16:37
文章分类

全部博文(769)

文章存档

2011年(1)

2008年(768)

我的朋友

分类:

2008-10-15 16:40:11

  在进行文件操作时,可以使用CFile类中的Remove()函数来删除一个文件,但是这样的操作将永久性的删除该文件,不能在必要的时候再恢复该文件,解决这个问题的唯一方法就是把文件送到系统中的回收站(Recycle Bin)里面,而不是简单的永久性删除它,这样用户就可以在必要的时候恢复这个文件。这个例子就来说明如何实现编程来实现回收站的文件存取操作。
 
  一、实现方法
 
  在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;

[1]   

【责编:huangchunmei】

--------------------next---------------------

阅读(604) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~