【AHK系列文章】文件和路径

AHK系列文章


AHK作为一种脚本语言,其功能特点是对操作系统功能的整合与简化,从而缩减操作流程,从而起到提高效率的目的。鼠标、键盘的映射,相当于是对外设操作的简化,而除了外部交互之外,操作文件则是一项十分频繁的任务,所以在AHK中提供了诸多路径操作函数。

路径操作

AHK支持文件夹和文件的复制、移动、删除等操作,具体如下

操作文件夹文件
复制DirCopyFileCopy
移动DirMoveFileMove
删除DirDeleteFileDelete
判存DirExistFileExist
创建DirCreate

此外,还有SetWorkingDir可以更改脚本当前的工作目录。

其中,复制、移动操作至少需要两个输入参数,即源文件(夹)和目标文件(夹)。移动和判存函数则至少只需要一个输入路径。

此外,在删除文件夹时,会有一个布尔类型的可选参数Recurse,默认为false,表示若文件夹不为空,则不进行操作并抛出异常;如果设为true,则

在复制和移动操作时,会有一个可选参数Overwrite,默认为false,表示不覆盖现有项目,否则对现有内容进行覆盖。

下面举一个例子

CapsLock::{
    DirCreate "test"
    if DirExist("test")
    	Msgbox "test存在"
}

执行脚本后,点击CapsLock,则会在脚本所在路径创建一个名为test的文件夹,并弹出test存在的提示框。如果在创建文件夹之前,使用SetWorkingDir函数更改工作目录,则test文件夹会创建到相应的路径下。

文件选择

AHK提供了两个非常便捷的GUI工具,用来选择文件或文件夹,分别是DirSelectFileSelect,其调用接口分别为

slctFolder := DirSelect(StartingFolder, Options, Prompt)
slctFile := FileSelect(Options, RootDir\Filename, Title, Filter)

各参数含义如下

  • StartingFolder 起始路径
  • RootDir\Filename 起始路径及默认文件名
  • Prompt;Title 对话框的操作文本
  • Filter 文件过滤器

DirSelectFileSelectOptions含义不同,在文件夹对话框中,其可选参数及其含义为

在文件对话框中,其可选参数及其含义为

D 允许用户选择文件夹,这种情况下Filter必须省略
M 支持多选
S 为文件保存对话框

文件读写

AHK可以创建、写入、读取文件,与此相关的函数有

函数说明
FileOpen打开文件
FileEncoding设置默认编码
FileAppend内容追加
FileRead读取文件

下面做一个简单的脚本来演示一下这几个函数的功能

CapsLock::{
    fileAppend "autohotkey", "test.txt"
    MsgBox fileRead("test.txt")
}

执行脚本后,点击CapsLock,就会创建一个文本文件test.txt,内容为autohotkey,同时弹出消息框,内容也是autohotkey

和大多数编程语言不同,AHK并没有提供类似FileWrite这样直接覆盖旧文件然后写入的函数,如果想实现类似功能,可以先将原来的文件删除。

此外,FileAppend, FileRead这两个函数都有可选参数Encoding,用于声明文件编码,缺省时采用默认编码。FileEncoding函数可设置默认编码。

文件属性

AHK封装了一些获取和设置文件属性的函数,

类别设置获取
文件类别FileSetAttribFileGetAttrib
时间戳FileSetTimeFileGetTime
文件字节数FileGetSize
版本FileGetVersion

其中,Attrib表示文件类别,在Windows中有如下几类

RASHNOT
只读存档系统隐藏普通离线临时

而文件时间则包括三类,通过WhichTime参数调控,其中M表示修改时间;C表示创建时间;A表示上次访问时间。

CapsLock::{
    MsgBox FileGetTime("test.txt", "M")
}

执行结果为
在这里插入图片描述

————————————————

[版权声明]:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议
[原文链接]:https://blog.csdn.net/m0_37816922/article/details/130929168

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值