MFC-SHFileOperation文件操作
SHFileOperation是一种shell函数,shfileoperation的主要功能包括文件和目录的复制、移动、删除等常用的操作,还包括快捷方式的创建、属性的更改、应用程序的打开等操作。尤其是在移动、复制文件的时候,shfileoperation提供了非常详细的进度信息,让用户可以随时监控操作的进度。
shfileoperation主要用于文件和目录操作的GUI应用程序中,它为用户提供了非常实用的文件和目录操作方式
支持并发操作:shfileoperation可以同时执行多个文件和目录的操控操作,并保持稳定性和正确性
需要: #include "commdlg.h"
SHFILEOPSTRUCT结构说明
SHFILEOPSTRUCT结构说明 typedef struct _SHFILEOPSTRUCT { HWND hwnd; 父窗口句柄, 0为桌面 UINT wFunc; wFunc; 功能标识 FO_COPY 复制 FO_DELETE 删除 FO_MOVE 移动 FO_RENAME 重命名 PCZZTSTR pFrom; 源文件或者源文件夹 PCZZTSTR pTo; 目的文件或文件夹 FILEOP_FLAGS fFlags; 控制文件的标志位 FOF_ALLOWUNDO 准许撤销 FOF_CONFIRMMOUSE 没有被使用,,, FOF_FILESONLY 通配符的文件名( *.* )只对文件(不是文件夹)进行操作 FOF_MULTIDESTFILES 【pTo成员指定多个目标文件(pFrom中的每个源文件一个) 而不是存放所有源文件的一个目录】 FOF_NOCONFIRMATION 不出现任何对话框 FOF_NOCONFIRMMKDIR 创建文件夹的时候不用确认 FOF_NO_CONNECTED_ELEMENTS Version 5.0适用,,不移动连接文件(connected files),只移动特定文件 FOF_NOCOPYSECURITYATTRIBS Version 4.71适用,,复制移动文件的时候不复制安全属性,而是为文件指定新的安全属性 FOF_NOERRORUI 如果发生错误, 不要显示对话框给用户 FOF_NORECURSEREPARSE 没有被使用 FOF_NORECURSION 不递归目录 FOF_NO_UI Windows Vista中,默默的进行操作,不给用户呈现任何UI 这相当于FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI|FOF_NOCONFIRMMKDIR FOF_RENAMEONCOLLISION 移动复制的时候如果名字重名,自动分配新名字 FOF_SILENT 不显示进度条提示框 FOF_SIMPLEPROGRESS 显示一个进度条,但不显示单个文件名 FOF_WANTMAPPINGHANDLE 如果指定了FOF_RENAMEONCOLLISION,说明此时是在重命名, 分配一个名称映射对象,其中包含他们的旧的和新的名字到hNameMappings成员。 如果不再使用,需要用SHFreeNameMappings释放。 FOF_WANTNUKEWARNING 当一个文件被永久删除的时候,弹出警告框 BOOL fAnyOperationsAborted; 操作是否终止 LPVOID hNameMappings; 文件映射 PCTSTR lpszProgressTitle; 进度条标题 } SHFILEOPSTRUCT, *LPSHFILEOPSTRUCT;