| SHFileOperation(...) | 移动、复制、改名、删除多个文件或文件夹 |
| int SHFileOperation(LPSHFILEOPSTRUCT lpFileOp) |
| 参数 | 描述 |
|---|---|
| lpFileOp | SHFILEOPSTRUCT 结构地址 |
| 返回值 | 0 正常 |
| struct SHFILEOPSTRUCT { HWND hwnd; UINT wFunc; LPCSTR pFrom; LPCSTR pTo; FILEOP_FLAGS fFlags; BOOL fAnyOperationsAborted; LPVOID hNameMappings; LPCSTR lpszProgressTitle; } |
| 参数 | 描述 |
|---|---|
| hwnd | 父窗口句柄 |
| wFunc | 操作方式(移动/复制/改名/删除) |
| pFrom | 源文件名(多个文件名以\0分隔,末尾以\0\0结束) |
| pTo | 目标目录或目标文件名 |
| fFlags | 标记,可多选 |
| fAnyOperationsAborted | 返回 TRUE 或 FALSE,表示是否被用户中断操作 |
| hNameMappings | 当设为自动重命名时,返回新旧文件名对照表 |
| lpszProgressTitle | 当设为不显示文件名时,显示在文件名处的固定信息 |
| 常量 | 描述 |
|---|---|
| FO_MOVE | 移动文件 |
| FO_COPY | 复制文件 |
| FO_DELETE | 删除文件 |
| FO_RENAME | 改名文件 |
| 常量 | 描述 |
|---|---|
| FOF_MULTIDESTFILES | 指定目标是多个文件,pTo 属性 |
| FOF_CONFIRMMOUSE | |
| FOF_SILENT | 不显示进度报告对话框 |
| FOF_RENAMEONCOLLISION | 文件名冲突时重命名,如“复件 XXX” |
| FOF_NOCONFIRMATION | 不提示用户选择,全部确认 |
| FOF_WANTMAPPINGHANDLE | |
| FOF_ALLOWUNDO | 允许撤消操作(仅当源文件名包含全路径) |
| FOF_FILESONLY | 如果指定了 *.* 通配符,则只操作文件 |
| FOF_SIMPLEPROGRESS | 不显示进度对话框上的文件名 |
| FOF_NOCONFIRMMKDIR | 不提示建立文件夹,全部确认 |
| FOF_NOERRORUI | 不提示发生的错误信息 |
| FOF_NOCOPYSECURITYATTRIBS | 不复制文件安全信息 |