Repository navigation
v0.3.1
Dion v0.3.1 调整 JSON 输出,使列表明确表达记录所属目录与条目类型,并为树状查询提供嵌套结构。
JSON 破坏性变更
本版本改变既有 JSON 契约,升级前请调整依赖旧字段、递归名称或扁平树输出的脚本。
- 所有
listJSON 条目新增type(file、directory、orphan),删除extension;顶层新增root_directory,表示查询起始目录的绝对路径(词法处理点组件,不解析链接目标,保留路径拼写及扩展路径前缀);空列表也包含此字段,entries、errors数组及退出码规则不变,未知程序扩展记录仍列出已解析的正文。 - 普通、单栏及递归扁平 JSON 条目包含
type、parent_directory、name、comment。name改为备注文件中的原始记录名称,不再表示完整相对路径;parent_directory表示记录所属目录相对于查询起始目录的路径,使用反斜杠且无尾部分隔符,起始目录为""。 --tree --json改为嵌套树,沿用文本树的节点选择及排序,包含必要的辅助目录且不显示起始目录根节点。目录节点始终包含children,文件和孤立记录不包含;辅助目录使用comment: null,已有空备注使用comment: ""。树节点不含parent_directory。两种列表均不输出程序扩展字段,Everything 查询使用相同契约。get --json将extension改名为program_extension,值仍为none、tc、unknown。旧字段不再输出,依赖它的脚本应更新字段名;原先通过列表检查程序扩展类型的脚本需要对条目调用get --json。
新结构示例:
{"root_directory":"D:\\data","entries":[{"type":"file","parent_directory":"folder","name":"a.txt","comment":"备注正文"}],"errors":[]}{"root_directory":"D:\\data","entries":[{"type":"directory","name":"folder","comment":null,"children":[{"type":"file","name":"a.txt","comment":"备注正文"}]}],"errors":[]}{"name":"a.txt","comment":"备注正文","program_extension":"none"}