aardio 文档

fsys.atomicFile 库模块帮助文档

原子文件替换

fsys.atomicFile 成员列表 #

本地固定磁盘 NTFS 的单文件原子命名替换。
不是多文件事务或掉电耐久保证;不保留旧目标 ACL/时间戳/备用流,不自动创建父目录。

fsys.atomicFile.prepare() #

返回对象:atomicPreparedObject

fsys.atomicFile.prepare(目标路径,字符串或buffer,选项表) #

在目标同目录独占创建临时文件,完整写入,默认 FlushFileBuffers。
成功返回 prepared 对象;失败返回 null,错误信息,结果表。结果含 cleanupError/pending 时必须处理清理失败。

fsys.atomicFile.write() #

返回对象:atomicFileResultObject

fsys.atomicFile.write(目标路径,字符串或buffer,选项表) #

准备并提交;失败自动清理未提交临时文件。始终返回结果表,不要直接把结果当布尔值。
选项仅 flush=true、replaceExisting=true;false 可禁用刷新或只创建不覆盖。无自动重试。

atomicFileResultObject 成员列表 #

atomicFileResultObject.bytesWritten #

成功写入调用所报告的字节总数。

atomicFileResultObject.cleanupError #

独立清理错误 {code;message;systemCode},不意味着提交被撤销。

atomicFileResultObject.code #

主错误代码;error 为描述,systemCode 为可选 Win32 错误代码。

atomicFileResultObject.committed #

是否已完成原子重命名;一旦 true 不会因后续清理失败变回 false。

atomicFileResultObject.error #

主错误描述;准备失败或提交失败不会被后续 cleanupError 掩盖。

atomicFileResultObject.flushed #

是否成功请求过提交前 FlushFileBuffers;不是断电耐久保证。

atomicFileResultObject.handleOpen #

本对象是否仍持有句柄。

atomicFileResultObject.ok #

本次请求及必要清理是否全部完成;请同时检查 committed。

atomicFileResultObject.pending #

write/prepare 失败时仍持句柄的对象;保留并调用 close 重试清理,不要盲目重写目标。

atomicFileResultObject.pending. #

返回对象:atomicPreparedObject

atomicFileResultObject.state #

new / prepared / aborting / aborted / committed。

atomicFileResultObject.targetPath #

规范化目标绝对路径。

atomicFileResultObject.tempPath #

临时文件原绝对路径,提交后仅供诊断,不能据此删除文件。

atomicFileResultObject.tempState #

absent / owned / delete-pending,表示本对象的临时文件状态。
close 成功后也可能 delete-pending:外部元数据句柄令系统延迟删除。再次 close 仅复核,不按路径删除。

atomicPreparedObject 成员列表 #

atomicPreparedObject.close() #

未提交:按原句柄标记删除并关闭;已提交:仅关闭句柄,不删除目标。
返回结果表;失败保留句柄供重试。可重复调用;GC 仅尽力兜底。

返回对象:atomicFileResultObject

atomicPreparedObject.commit() #

返回结果表。失败保留 prepared,可显式重试或 close。
committed=true 后绝不再次替换或回滚;ok=false 且 committed=true 仅表示后续清理失败。

返回对象:atomicFileResultObject

atomicPreparedObject.status() #

返回状态快照;不探查后来外部写入。对象仅在创建线程内使用,不可序列化传递。

返回对象:atomicFileResultObject

Markdown 格式