FileMove
移动一或多个文件.
FileMove ( "source", "dest" [, flag = 0] )
参数
source
|
源文件的路径和文件名. (支持 * 通配符 - 见备注)
|
dest
|
移动到的目标路径和文件名. (支持 * 通配符 - 见备注))
|
flag
|
[可选] 确定是否覆盖已存在的文件:
可以是以下值的组合:
$FC_NOOVERWRITE (0) = (默认) 不覆盖已存在的文件
$FC_OVERWRITE (1) = 覆盖已存在的文件
$FC_CREATEPATH (8) = 自动创建不存在的目标目录结构 (见备注).
常量定义在 FileConstants.au3
|
返回值
成功:
|
返回 1.
|
失败:
|
返回 0, 源文件无法移动; 或目标文件已存在而又设置了标志=0.
|
备注
有关通配符的描述参见 FileFindFirstFile() 函数帮助页.
若源路径和目的路径位于不同的卷, 则本函数将执行复制/删除操作而不是直接移动.
由于 AutoIt 没有 "FileRename"(文件重命名) 函数,请使用本函数重命名文件!
目的目录必须已存在,除非设置标志为 $FC_CREATEPATH (8).
组合标志 $FC_OVERWRITE (1) + $FC_CREATEPATH (8) 覆盖存在的目标文件, 当目标文件夹不存在时将自动创建.
某些文件属性会不允许覆盖操作, 此时应先调用 FileSetAttrib() 函数修改文件属性.
函数示例
示例 1
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>
Example()
Func Example()
; Create a constant variable in Local scope of the filepath that will be read/written to.
Local Const $sFilePath = _WinAPI_GetTempFileName(@TempDir)
; Create a temporary file to move.
If Not FileWrite($sFilePath, "This is an example of using FileMove.") Then
MsgBox($MB_SYSTEMMODAL, "", "An error occurred whilst writing the temporary file.")
Return False
EndIf
; Move Au3 files in the temporary directory to a new folder/directory called Au3Files.
FileMove(@TempDir & "\*.au3", @TempDir & "\Au3Files\", $FC_OVERWRITE + $FC_CREATEPATH)
; Display the temporary directory.
ShellExecute(@TempDir)
EndFunc ;==>Example
示例 2
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>
Example()
Func Example()
; Create a constant variable in Local scope of the filepaths that will be renamed.
Local Const $sSource = _WinAPI_GetTempFileName(@TempDir), _
$sDestination = _WinAPI_GetTempFileName(@TempDir)
; Create a temporary file to rename.
If Not FileWrite($sSource, "This is an example of using FileMove.") Then
MsgBox($MB_SYSTEMMODAL, "", "An error occurred whilst writing the temporary file.")
Return False
EndIf
; Rename a file using FileMove and overwrite the new file if it exists.
FileMove($sSource, $sDestination, $FC_OVERWRITE)
; Display results that the destination file was renamed.
MsgBox($MB_SYSTEMMODAL, "", "Does the source file exist?: " & FileExists($sSource) & @CRLF & _ ; FileExists should return 0.
"Does destination file exist?: " & FileExists($sDestination) & @CRLF) ; FileExists should return 1.
; Delete the temporary files. FileDelete checks if the file exists.
FileDelete($sSource)
FileDelete($sDestination)
EndFunc ;==>Example
----------------------------------------
参见:
FileCopy, FileDelete, FileRecycle, DirMove
exect=FileMove('C:\Test\test.txt','D:\My\test_bak.txt') ;; 将test.txt文件从Test文件夹移动到我的文件夹,更改test_bak.txt中的名称(如果文件夹D:\My\未创建,则不会移动)
exect=FileMove('C:\Test\test.txt','D:\My\test_bak.txt',8) ;; 将test.txt从Test文件夹移动到我的文件夹,并改变test_bak.txt中的名称(如果文件夹D:\My\不被创建,则创建并且文件不会移动)
exect=FileMove('C:\Test\test.txt','D:\My\test_bak.txt',9) ;; 将test.txt文件从Test文件夹移动到我的文件夹,将名称更改为带有替换的test_bak.txt,如果这样的文件已经存在(如果文件夹D:\My\not created,那么文件不被移动)
exect=FileMove('C:\Test\*.txt','D:\TxtFiles\',9) ;; 将所有txt文件从Test文件夹移动到TxtFiles
© Аверин Андрей для Total Commander Image Averin-And@yandex.ru
|