第 4 章

文件与路径

遍历目录、读取文本并安全写入结果。

文件系统是一等公民

example.hhy
path("./logs")
    |> files("**/*.log")
    |> where { file -> file.size > 1mib }
    |> flat_map { file -> read_lines(file.path) }
    |> where { line -> contains(line, "ERROR") }
    |> save_lines(path("errors.txt"))

files 返回惰性 File Stream。Path 使用词法规范化;递归遍历可以启用 symlink,并具有循环保护。save_text 与 save_lines 使用原子替换语义。

常用能力

  • read_text / read_lines
  • write_text / append_text / save_text / save_lines
  • files / copy / move / remove
  • path_join / path_name / path_extension / path_parent