学习文件和目录操作中遇到的小问题[已解决]
本帖最后由 cashiba 于 2016-10-16 19:51 编辑学习一下文件和目录操作。如下把多个函数组合到一起练习。结果有点小问题:
1、说AU3没有新建文件和重命名文件的函数,那么想实现代码中注释部分的新建和重命名文件,要怎样写代码呢?
2、最后两行代码 FileDelete、DirRemove这两个函数为啥失灵呢?
初学,见笑了.....{:face (460):}#include <WinAPIFiles.au3>
Test()
Func Test()
Local $FilePath = "C:\Bea\"
If DirGetSize($FilePath) <> -1 Then
MsgBox($MB_SYSTEMMODAL, "", "目录已经存在!")
Return False
EndIf
DirCreate($FilePath)
Local $Fex = FileExists($FilePath & "\.jre.txt")
If $Fex Then
MsgBox($MB_SYSTEMMODAL, "", "文件存在." & @CRLF & "FileExist 返回 " & $Fex)
;1,把 jre.txt 重命名为 jre.bak
;2,删除原 jre.txt
;3,创建新 jre.txt
Else
MsgBox($MB_SYSTEMMODAL, "", "没有文件." & @CRLF & "FileExist 返回 " & $Fex)
FileCopy("D:\usbfiles\jre.txt",$FilePath,$FC_OVERWRITE);+ $FC_CREATEPATH)
EndIf
FileDelete($FilePath & "\.jre.txt")
DirRemove($FilePath)
EndFunc filecopy 重命名,fileopen 建新的,多看看幫助文件 本帖最后由 131738 于 2016-10-16 12:39 编辑
_FileCreate
创建或者清零指定的文件.
由于 AutoIt 没有 "FileRename"(文件重命名) 函数,请使用本函数(FileMove)重命名文件!
C: 盘 受 xp 之外的系统管理权限限制,
某些目录属性会导致无法操作. 因此需使用 FileSetAttrib() 事先更改目录的属性 无法删除文件,应该是被别的程序占用了吧?
你的代码可以简洁下,自己看着也舒服吧.Test("C:\Bea")
Func Test($sFilePath)
If DirGetSize($sFilePath) <> -1 Then Return MsgBox(16, "", "目录已经存在!")
DirCreate($sFilePath)
If FileExists($sFilePath & "\jre.txt") Then
FileMove($sFilePath & "\jre.txt", $sFilePath & "\jre.bak", 1); 重命名
FileWrite($sFilePath & "\jre.txt", "") ;新建
EndIf
FileCopy("D:\usbfiles\jre.txt", $FilePath, 1)
FileDelete($FilePath & "\jre.txt")
DirRemove($FilePath)
EndFunc 谢谢各位老师不明赐教!{:1_512:} filecopy 重命名,fileopen 建新的,多看看幫助文件
tubaba 发表于 2016-10-16 11:40 http://www.autoitx.com/images/common/back.gif
帮助文件里常常是一句话带过,Example实例只有简单的例子,难以面面俱到,因为受其它编程语言比喻dos之类的影响,理解不透彻,一时也不习惯阿.... _FileCreate
创建或者清零指定的文件.
由于 AutoIt 没有 "FileRename"(文件重命名) 函数,请使用本函数 ...
131738 发表于 2016-10-16 12:35 http://www.autoitx.com/images/common/back.gif
谢谢131738老师,你不说我还真没想到有这个_filecreate UDF.系统管理权限也常常容易忽略,你提醒得很周到,感谢...... 本帖最后由 cashiba 于 2016-10-16 14:35 编辑
无法删除文件,应该是被别的程序占用了吧?
你的代码可以简洁下,自己看着也舒服吧.
Alam 发表于 2016-10-16 12:39 http://www.autoitx.com/images/common/back.gif
现在刚开始练习目录和文件操作之类的函数,所以把几个例子综合堆砌在一起,主要是为了熟悉一下相关函数{:face (84):}
你的代码改了一下就成了:
#include <WinAPIFiles.au3>
Test("C:\Bea")
Func Test($FilePath)
If DirGetSize($FilePath) <> -1 Then
MsgBox(16, "", "目录已经存在!")
If FileExists($FilePath & "\jre.txt") Then
FileMove($FilePath & "\jre.txt", $FilePath & "\jre.bak", 1); 重命名
FileWrite($FilePath & "\jre.txt", "") ;新建
EndIf
else
DirCreate($FilePath)
FileCopy("D:\usbfiles\jre.txt", $FilePath, 1)
endif
EndFunc
FileDelete("C:\Bea\jre.txt")
FileDelete("C:\Bea\*.*")
DirRemove("C:\Bea");不能删除目录的原因:因为文件夹里还有其它文件,所以无法删除果然是有了实例事半功倍....非常感谢!
页:
[1]