找回密码
 加入
搜索
查看: 1836|回复: 7

[AU3基础] 学习文件和目录操作中遇到的小问题[已解决]

[复制链接]
发表于 2016-10-16 11:25:38 | 显示全部楼层 |阅读模式
本帖最后由 cashiba 于 2016-10-16 19:51 编辑

学习一下文件和目录操作。如下把多个函数组合到一起练习。结果有点小问题:
1、说AU3没有新建文件和重命名文件的函数,那么想实现代码中注释部分的新建和重命名文件,要怎样写代码呢?
2、最后两行代码 FileDelete、DirRemove这两个函数为啥失灵呢?
初学,见笑了.....
#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
发表于 2016-10-16 11:40:04 | 显示全部楼层
filecopy 重命名,fileopen 建新的,多看看幫助文件
发表于 2016-10-16 12:35:46 | 显示全部楼层
本帖最后由 131738 于 2016-10-16 12:39 编辑

_FileCreate
创建或者清零指定的文件.


由于 AutoIt 没有 "FileRename"(文件重命名) 函数,请使用本函数(FileMove)重命名文件!

C: 盘 受 xp 之外的系统管理权限限制,

某些目录属性会导致无法操作. 因此需使用 FileSetAttrib() 事先更改目录的属性
发表于 2016-10-16 12:39:26 | 显示全部楼层
无法删除文件,应该是被别的程序占用了吧?
你的代码可以简洁下,自己看着也舒服吧.
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
 楼主| 发表于 2016-10-16 13:56:18 | 显示全部楼层
谢谢各位老师不明赐教!
 楼主| 发表于 2016-10-16 14:03:12 | 显示全部楼层
filecopy 重命名,fileopen 建新的,多看看幫助文件
tubaba 发表于 2016-10-16 11:40

帮助文件里常常是一句话带过,Example实例只有简单的例子,难以面面俱到,因为受其它编程语言比喻dos之类的影响,理解不透彻,一时也不习惯阿....
 楼主| 发表于 2016-10-16 14:06:53 | 显示全部楼层
_FileCreate
创建或者清零指定的文件.
由于 AutoIt 没有 "FileRename"(文件重命名) 函数,请使用本函数 ...
131738 发表于 2016-10-16 12:35

谢谢131738老师,你不说我还真没想到有这个_filecreate UDF.系统管理权限也常常容易忽略,你提醒得很周到,感谢......
 楼主| 发表于 2016-10-16 14:30:41 | 显示全部楼层
本帖最后由 cashiba 于 2016-10-16 14:35 编辑
无法删除文件,应该是被别的程序占用了吧?
你的代码可以简洁下,自己看着也舒服吧.
Alam 发表于 2016-10-16 12:39

现在刚开始练习目录和文件操作之类的函数,所以把几个例子综合堆砌在一起,主要是为了熟悉一下相关函数
你的代码改了一下就成了:
#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");不能删除目录的原因:因为文件夹里还有其它文件,所以无法删除
果然是有了实例事半功倍....非常感谢!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-25 14:06 , Processed in 0.073066 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表