复制,移动,重命名或删除文件系统对象.
#Include <WinAPIEx.au3>
_WinAPI_ShellFileOperation ( $sFrom, $sTo, $iFunc, $iFlags [, $sTitle [, $hParent]] )
$sFrom | 单个字符串或字符串数组,包含源文件的名称. 为防止意外的结果, 名称应该是完全合格的路径. |
$sTo | 单个字符串或字符串数组,其中包含目标文件或目录名称. 为防止意外的结果, 名称应该是完全合格的路径. |
$iFunc | 操作执行的值. 参数可以是以下值之一: $FO_COPY --- 复制 $sFrom 指定的文件到 $sTo 指定的位置 $FO_DELETE --- 删除 $sFrom 指定的文件 $FO_MOVE --- 移动 $sFrom 指定的文件到 $sTo 指定的位置 $FO_RENAME --- 重命名 $sFrom 指定的文件.不能用一个函数调用此标志命名多个文件. |
$iFlags | 文件操作的控制标志. 参数可以是以下值之一: $FOF_ALLOWUNDO --- 如果可能的话,保留撤消信息 $FOF_CONFIRMMOUSE --- 未使用 $FOF_FILESONLY --- 如果一个通配符指定文件名(*.*),执行该操作只对文件,不对文件夹 $FOF_MULTIDESTFILES --- $sTo 指定多个目标文件,而不是一个目录下所有源文件将被保存( $sFrom 中的每个源文件) $FOF_NOCONFIRMATION --- 对所有显示的对话框回答"是" $FOF_NOCONFIRMMKDIR --- 如果操作需要创建新的目录,不要求用户确认 $FOF_NO_CONNECTED_ELEMENTS --- 版本5.0.不移动连接的一组文件,只移动指定的文件 $FOF_NOCOPYSECURITYATTRIBS --- 版本4.71.不复制该文件的安全属性.目标文件接收新文件夹的安全的属性 $FOF_NOERRORUI --- 如果发生错误,不向用户显示对话框 $FOF_NORECURSEREPARSE --- 未使用 $FOF_NORECURSION --- 仅针对本地目录的操作,不要递归操作到子目录.这是默认行为 $FOF_RENAMEONCOLLISION --- 在移动,复制,或重命名操作中,如果目标文件的名称已存在于目的地,给正在运作的文件一个新名称 $FOF_SILENT --- 不显示进度对话框 $FOF_SIMPLEPROGRESS --- 显示进度对话框,但不显示个别文件的名称,因为它们运作中 $FOF_WANTMAPPINGHANDLE --- 如果 FOF_RENAMEONCOLLISION 指定任何文件被重命名,指定一个名称映射对象. $FOF_WANTNUKEWARNING --- 版本5.0.如果文件被删除操作过程中永久摧毁,而不是回收,发送警告 $FOF_NO_UI --- 版本6.0.6060(Windows Vista).执行静默地操作.不出现用户界面. |
$sTitle | [可选参数] 进度条对话框的标题.此参数只用于 $iFlags 指定有 $FOF_SIMPLEPROGRESS 标志时. |
$hParent | [可选参数] 显示运行状态的对话框句柄. |
成功: | 返回 $tagSHFILEOPSTRUCT 结构,包含附加补充信息. |
失败: | 返回 0并设置@error为下列值之一: |
-1 - AutoIt 固有错误. | |
113 - 源和目标文件是相同的文件. | |
114 - 源缓冲区指定多个文件路径,但只有一个目标文件路径. | |
115 - 重命名操作,但指定的目标路径是不同的目录. 使用移动操作代替. | |
116 - 源为根目录,不能被移动或重命名. | |
117 - 操作已被用户取消, 或当有适当标志提供给本函数时,被静默取消. | |
118 - 目标是源的子目录树. | |
120 - 安全设置拒绝访问源. | |
121 - 源或目标路径超过或将超过 MAX_PATH. | |
122 - 操作涉及多个目标路径,可能是一个移动操作失败的案例. | |
124 - 源或目标或两者的路径无效. | |
125 - 源和目标具有相同的父文件夹. | |
126 - 目标路径已存在文件. | |
128 - 目标路径已存在文件夹. | |
129 - 文件名称超过 MAX_PATH. | |
130 - 目标为只读光盘,可能未格式化. | |
131 - 目标为只读 DVD, 可能未格式化. | |
132 - 目标为可写 CD-ROM, 可能未格式化. | |
133 - 操作涉及的文件大于目标媒体或文件系统. | |
134 - 源为只读光盘(CD-ROM), 可能未格式化. | |
135 - 源为只读 DVD, 可能未格式化. | |
136 - 源为可写 CD-ROM, 可能未格式化. | |
183 - MAX_PATH 超出操作期间. | |
1026 - 未知错误. 通常是由于源或目标路径无效. | |
65536 - 目标发生未知错误. | |
65652 - 目标是根目录,不能重命名. |
在MSDN中搜索
#Include <APIConstants.au3>
#Include <WinAPIEx.au3>
Opt('MustDeclareVars', 1)
Global $sTemp
; 创建临时文件
$sTemp = _WinAPI_GetTempFileName(@TempDir)
ShellExecute('::{645FF040-5081-101B-9F08-00AA002F954E}')
; 删除到回收站
If FileExists($sTemp) Then
_WinAPI_ShellFileOperation($sTemp, '', $FO_DELETE, BitOR($FOF_ALLOWUNDO, $FOF_NO_UI))
EndIf