当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>Visual C++教程

VC++实现回收站的文件存取

  在进行文件操作时,可以使用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;

共3页 首页 上一页 1 2 3 下一页 尾页 跳转到
相关内容
赞助商链接