aardio 文档

fsys.file 库模块帮助文档

fsys 成员列表

fsys.file("字符串参数")

只读模式打开,文件必须存在
如果路径以斜杠结束,则以目录模式打开.
更多参数参考源码

fsys.file("字符串参数","a")

只写追加模式打开,创建新文件保留原文件

fsys.file("字符串参数","a+")

读写追加模式打开,创建新文件保留原文件

fsys.file("字符串参数","r+")

读写模式打开,文件必须存在
文件路径也可以指定一个目录,可使用返回对象读写目录时间属性,
更多参数参考源码

fsys.file("字符串参数","w")

只写模式打开,创建新文件清空原文件

fsys.file("字符串参数","w+")

读写模式打开,创建新文件清空原文件

fsys.file("字符串参数","w+D")

读写模式打开临时文件,关闭对象时自动删除文件

fsys.file()

返回对象:fsysfileObject

fsys.file(path,mode,shareMode,creation,flagsAndAttributes,secAttrib)

所有参数可选,
参数详细用法参考此函数源码与CreateFile参数用法,
mode参数可指定数值指定打开模式,也可使用与io.file相同规则的描述字符
shareMode参数默认为 _FILE_SHARE_READ | _FILE_SHARE_WRITE
creation参数默认值为 _OPEN_EXISTING
@flagsAndAttributes 为可选参数,指定文件属性,省略则自动设置此参数
@secAttrib 不必指定

fsys.file(文件句柄)

可以指定文件、管道等句柄

fsys.file(文件句柄,true)

直接文件、管道等句柄
添加析构函数负责释放句柄

fsys.file 成员列表

用于打开或创建文件对象,
fsys.file 返回的文件对象可传入其他线程使用。

fsys.file.is()

判断参数是不是fsys.file对象

fsys.file.lastModified()

参数 @1 指定文件路径,返回文件最后修改时间。
返回值是 time.gmt 对象,即 RFC1123 格式时间。HTTP 协议使用该对象

返回对象:timeObject

fsys.file.lastModified(,"2024/1/1 11:01:00")

参数 @1 指定文件路径,\b参数 @2 指定任何可作为 time.iso8601 参数的时间格式,可指定字符串。
如果文件修改时间大于参数 @2 指定的时间则返回 true

fsys.file.lines(path)

for line in fsys.file.lines(/*请输入逐行读取的文本文件路径*/) { 

}

fsys.file.temp()

返回对象:fsysfileObject

fsys.file.temp(pathOrExt,dontDeleteOnClose)

创建临时文件,
可选用 @pathOrExt 参数指定临时文件路径或后缀名,
指定临时文件后缀名时第一个字符必须是 . 号,
可选指定 @dontDeleteOnClose 参数值为 true 禁止关闭对象自动删除文件,
@dontDeleteOnClose 为 true 时文件才会有共享读写权限,
可通过返回文件对象的 path 属性获取临时文件路径

filefiletimesObject 成员列表

filefiletimesObject.access

文件最后访问时间

返回对象:fsysTimeObject

filefiletimesObject.creation

文件创建时间

返回对象:fsysTimeObject

filefiletimesObject.write

文件最后修改时间

返回对象:fsysTimeObject

filetimesObject 成员列表

filetimesObject.access

文件最后访问时间

返回对象:timeObject

filetimesObject.creation

文件创建时间

返回对象:timeObject

filetimesObject.write

文件最后修改时间

返回对象:timeObject

fsysfileObject 成员列表

fsysfileObject.close()

关闭文件句柄

fsysfileObject.delete()

关闭并删除文件

fsysfileObject.deviceIoControl

对设备驱动程序发送控制指令

fsysfileObject.deviceIoControl(控制码,输入结构体,输出结构体)

参数可以为空或结构体,
输出结构体也可以是raw.malloc分配的缓冲区,
成功返回true,以及读取的字节数

fsysfileObject.flush()

刷新缓冲区

fsysfileObject.getFileTime()

返回创建时间、最后修改时间、最后访问时间,
所有返回时间为 UTC 标准时间

返回对象:filefiletimesObject

fsysfileObject.getTime()

返回创建时间、最后修改时间、最后访问时间,
所有返回时间为 UTC 标准时间

返回对象:filetimesObject

fsysfileObject.handle

返回文件句柄

fsysfileObject.lastModified()

返回最后修改时间,返回值是time.gmt对象,
即RFC1123格式时间,HTTP协议使用该对象

返回对象:timeObject

fsysfileObject.path

返回文件路径

fsysfileObject.read()

读取一行文本
返回文本不包含回车换行符

fsysfileObject.read(-1)

读取所有内容到文件尾部

fsysfileObject.read(0)

是否未到达文件尾。
如果已经到达文件尾返回 null,否则返回空字符串。
注意在布尔表达式工 null 等于 false,空字符串等于 true。

fsysfileObject.read({int number} )

读取结构体
不支持多参数

fsysfileObject.read(字节数)

读取指定长度的字节
不支持多参数

fsysfileObject.readAll()

读取所有内容

fsysfileObject.readBuffer

读取数据到 buffer ,成功返回读取长度,失败返回null

fsysfileObject.readBuffer(buffer,读取长度)

直接读数据到内存
参数@1可以是 buffer 对象,或内存指针,
如果是指针则必须指定读取长度,否则长度参数可选
成功返回读取长度

fsysfileObject.readTo

读取直到以指定的字符串结束

fsysfileObject.readTo('结束串')

读取直到以指定的字符串结束,返回值不包含结束串,
该函数每次仅读取一个字节,效率较低

fsysfileObject.seek("cur",)

移动至相对当前位置的指定偏移量,
偏移量应当是一个普通数值。

fsysfileObject.seek("end")

移动指针至结束处
返回当前位置,返回值大于2GB则为负值,
获取文件大小推荐使用 size() 函数

fsysfileObject.seek("end",)

移动至相对结束处的指定偏移量,
偏移量应当是一个普通数值。

fsysfileObject.seek("set")

移动指针到开始

fsysfileObject.seek("set",)

移动至相对开始处的指定偏移量,
偏移量应当是一个普通数值。

普通数值的整数上限为 8PB,没有可能会写这么大的文件。
所以偏移量不支持、也不必要使用 math.size64 对象

fsysfileObject.seek()

得到当前位置

fsysfileObject.setFileTime(creation=创建时间;access=访问时间;write=修改时间)

fsysfileObject.setFileTime(  
    creation = fsys.time();  
    access = fsys.time();  
    write = fsys.time()   
)

fsysfileObject.setTime(creation=创建时间;access=访问时间;write=修改时间)

fsysfileObject.setTime(  
    creation = time();  
    access = time();  
    write = time()   
)

fsysfileObject.seteof()

将当前文件位置设为文件末尾,
用于快速改变文件大小
成功返回true

fsysfileObject.size()

返回文件大小。
size 函数表示的容量可以达到 8PB,一般不必要 size64 函数,
math.size64 对象主要用于格式化为适合单位表示的文本。

fsysfileObject.size64()

返回文件大小。
返回值为 math.size64 长整数对象。
可调用返回对象的 format 函数格式化为适合单位表示的文本。

返回对象:mathSize64Object

fsysfileObject.type()

获取文件对象的类型
例如控制台,管道,本地文件....等等
返回值请参考_FILE_TYPE_前缀的常量

fsysfileObject.write(字符串)

写入字符串
参数也可以是数值、结构体

fsysfileObject.writeBuffer

写入缓冲区数据,成功返回写入长度,失败返回null

fsysfileObject.writeBuffer(buffer,写入长度)

直接写数据到内存
参数@1可以是 buffer 对象、字符串、内存指针。
如果是指针则必须指定写入长度,否则长度参数可选。
成功返回写入长度

自动完成常量

_FILEOPENORD=0x600
_FILE_ATTRIBUTE_ARCHIVE=0x20
_FILE_ATTRIBUTE_COMPRESSED=0x800
_FILE_ATTRIBUTE_DIRECTORY=0x10
_FILE_ATTRIBUTE_HIDDEN=2
_FILE_ATTRIBUTE_NORMAL=0x80
_FILE_ATTRIBUTE_READONLY=1
_FILE_ATTRIBUTE_SYSTEM=4
_FILE_ATTRIBUTE_TEMPORARY=0x100
_FILE_BEGIN=0x0
_FILE_CASE_PRESERVED_NAMES=2
_FILE_CASE_SENSITIVE_SEARCH=1
_FILE_CURRENT=1
_FILE_END=2
_FILE_FILE_COMPRESSION=0x10
_FILE_FLAG_BACKUP_SEMANTICS=0x2000000
_FILE_FLAG_DELETE_ON_CLOSE=0x4000000
_FILE_FLAG_NO_BUFFERING=0x20000000
_FILE_FLAG_OVERLAPPED=0x40000000
_FILE_FLAG_POSIX_SEMANTICS=0x1000000
_FILE_FLAG_RANDOM_ACCESS=0x10000000
_FILE_FLAG_SEQUENTIAL_SCAN=0x8000000
_FILE_FLAG_WRITE_THROUGH=0x80000000
_FILE_NOTIFY_CHANGE_ATTRIBUTES=4
_FILE_NOTIFY_CHANGE_DIR_NAME=2
_FILE_NOTIFY_CHANGE_FILE_NAME=1
_FILE_NOTIFY_CHANGE_LAST_WRITE=0x10
_FILE_NOTIFY_CHANGE_SECURITY=0x100
_FILE_NOTIFY_CHANGE_SIZE=0x8
_FILE_PERSISTENT_ACLS=0x8
_FILE_SHARE_DELETE=4
_FILE_SHARE_READ=1
_FILE_SHARE_WRITE=2
_FILE_TYPE_CHAR=2
_FILE_TYPE_DISK=1
_FILE_TYPE_PIPE=3
_FILE_TYPE_REMOTE=0x8000
_FILE_TYPE_UNKNOWN=0x0
_FILE_UNICODE_ON_DISK=4
_FILE_VOLUME_IS_COMPRESSED=0x8000

Markdown 格式