Skip to content

文件 ​

文件读写命名空间。 所有返回 结果 容器,失败不炸程序。

函数 ​

调用返回说明
文件.读(路径)结果成功时 .值 为文件内容字符串;失败时 .错误 为原因
文件.写(路径, 内容)结果成功时 .值 为 真;失败(路径非法、写入/刷盘失败等)时 .错误 为原因
文件.存在?(路径)布尔文件是否存在
文件.删(路径)结果删除文件;占用/瞬时锁会自动重试,最终失败时 .错误 带尝试次数与系统错误码;文件不存在视为明确错误
文件.建目录(路径)结果创建单层目录;已存在或无权时失败
文件.删目录(路径)结果删除空目录;非空或不存在时失败
文件.复制(源, 目标)结果复制文件(流式 8KB 缓冲,任意大小可用)
文件.移动(源, 目标)结果移动/更名(同盘 rename;跨盘移动请用 复制+删除)
文件.尺寸(路径)结果成功时 .值 为字节数(整)
文件.修改时间(路径)结果成功时 .值 为 Unix 时间戳(整,秒)
文件.改目录(路径)结果改变进程当前工作目录(影响后续相对路径解析)
文件.打开(路径, 模式)结果打开流式句柄;模式:"读" / "写"(截断) / "追加" / "读写"(须已存在) / "写读"(截断);成功时 .值 为文件句柄

流式句柄方法(文件.打开 的返回值) ​

句柄是 ARC 管理的对象:不显式关闭也会在回收时自动关闭(关闭幂等)。非对应模式的操作返回失败 结果。

调用返回说明
h.读一行()结果读一行(剥行尾 \r\n/\n);到文件尾时 .成功 为假、.错误 为 "已到文件尾"
h.读全部()结果自当前位置读到文件尾
h.读字节(n)结果读 n 字节原始字节流(可含 NUL;短读正常)
h.写文本(内容) / h.写行(内容)结果写入字符串;写行自动补 \n(二进制语义,不翻译 \r\n)
h.移动位置(偏移)结果绝对位置(自文件首,从 0 起)
h.到文件尾()结果移到末尾(追加写前用)
h.取位置()结果当前读写位置(整,字节)
h.取长度()结果文件长度(整,字节;保持当前位置不变)
h.尾?()布尔上次读是否已越过末尾
h.刷新()结果冲刷写缓冲到磁盘
h.关闭()结果关闭句柄(幂等)
xuantie
设 开 = 文件.打开("日志.txt", "追加")
若 开.成功 {
    设 h = 开.值
    h.写行("[" & 字(时.现()) & "] 启动")
    h.关闭()
}
设 读 = 文件.打开("日志.txt", "读")
若 读.成功 {
    设 h = 读.值
    设 行 = h.读一行()
    当 行.成功 {
        示(行.值)
        行 = h.读一行()
    }
    h.关闭()
}

用法 ​

xuantie
设 写果 = 文件.写("配置.json", "{\"版本\": 1}")
若 写果.成功 { 示("已写入") } 否 { 示("写入失败: " & 写果.错误) }

设 读果 = 文件.读("配置.json")
若 读果.成功 {
    设 数据 = 解(读果.值)     // 读回的是字符串,要解析 JSON 得再过 解
    示(数据["版本"])
} 否 {
    示("读取失败: " & 读果.错误)
}

注意 ​

  • 文件.读 返回的是 结果 容器不是字符串——直接 解(文件.读(...)) 会在运行时显式报错退出(守卫:解 只接受字符串)。必须先 若 r.成功 { 解(r.值) }。
  • 删除文件不要写 执("cmd /c del …"):命令里的正斜杠会被 cmd 当作开关(Invalid switch),且失败常被忽略。用 文件.删。
  • 中文路径安全:文件.* 在 Windows 上走宽字符 API(_wfopen / DeleteFileW),UTF-8 路径可直接使用。

相关 ​

  • 解、化 —— JSON 反序列化与序列化
  • 执 —— 执行外部命令

基于 VitePress 静态构建 · 文档内容与仓库 GUIDE/ 同源

玄铁玄铁 XUANTIE · 中文系统级编程语言MARK 玄·折 120×120 · STROKE 8 · NO CURVES