Filesystem API
文件系统辅助能力位于 ptool.fs 和 p.fs 下。
ptool.fs.read
v0.1.0- 引入。
ptool.fs.read(path) 按原始字节读取文件,并返回一个 Lua 字符串。
path(string,必填):文件路径。- 返回:
string。
说明:
- 返回的 Lua 字符串会精确包含磁盘上的文件字节。
- 文本文件依然可以像以前一样读取,同时也支持二进制文件。
示例:
local content = ptool.fs.read("README.md")
print(content)
local png = ptool.fs.read("logo.png")
print(#png)
ptool.fs.write
v0.1.0- 引入。
ptool.fs.write(path, content) 将 Lua 字符串按原始字节写入文件,并覆盖已有内容。
path(string,必填):文件路径。content(string,必填):要写入的内容。
说明:
content会逐字节写入。- 内嵌 NUL 字节和非 UTF-8 字节都会被保留。
示例:
ptool.fs.write("tmp/hello.txt", "hello\n")
ptool.fs.write("tmp/blob.bin", "\x00\xffABC")
ptool.fs.mkdir
v0.1.0- 引入。
ptool.fs.mkdir(path) 创建目录。如果父目录不存在,会递归创建。
path(string,必填):目录路径。
示例:
ptool.fs.mkdir("tmp/a/b")
ptool.fs.exists
v0.1.0- 引入。
ptool.fs.exists(path) 检查路径是否存在。
path(string,必填):文件或目录路径。- 返回:
boolean。
示例:
if ptool.fs.exists("tmp/hello.txt") then
print("exists")
end
ptool.fs.glob
v0.2.0- 引入。v0.5.0- 新增working_dir选项。
ptool.fs.glob(pattern[, options]) 使用 Unix 风格 glob 语法匹配文件系统 路径,并按字典序返回命中的路径字符串数组。
pattern(string,必填):glob 模式。相对模式会从当前ptool运行时目录 解析,因此会受到ptool.cd(...)的影响。options(table,可选):glob 选项。支持:working_dir(string,可选):覆盖相对模式解析时使用的基准目录。 相对working_dir会从当前ptool运行时目录解析。
- 返回:
string[]。 - 隐藏文件和目录只有在对应模式片段显式以
.开头时才会被匹配。
示例:
ptool.cd("src")
local rust_files = ptool.fs.glob("**/*.rs")
local hidden = ptool.fs.glob("**/.secret/*.txt")
local lua_scripts = ptool.fs.glob("**/*.lua", {
working_dir = "../scripts",
})