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 | 不复制文件安全信息 |