You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用纯Red语言(v0.6.3 CLI)存储目录文件列表?

在Red 0.6.3 CLI中纯Red实现目录文件列表存储到变量

我懂你的痛点——Red里的list-dir、ls、dir这些工具函数本质是面向控制台输出设计的,它们的核心作用就是直接把目录内容打印到CLI,并不会返回可赋值给变量的结果,所以你尝试赋值时出错是正常的。

要实现纯Red的目录列表存储,你得用read函数,这是Red标准库中专门处理文件系统读取的核心函数,完全不依赖外部系统命令,是跨平台的纯Red方案。

基础用法示例

直接读取目标目录,返回包含所有文件/子目录的块(Red中的块类型,类似数组):

; 读取当前目录的内容,存入files变量
files: read %./

; 读取指定路径的目录,比如上级目录
parent-files: read %../

过滤特定类型的内容

如果需要只保留文件或者只保留子目录,可以结合filter和类型判断函数做进一步处理:

; 只获取目录中的文件(排除子目录)
only-files: filter read %./ [file? value]

; 只获取目录中的子目录
only-dirs: filter read %./ [dir? value]

关于call方案的补充

你提到的call方法(比如call "ls")虽然能拿到目录列表,但它有明显的局限性:

  • 跨平台兼容性差:Windows上需要换成call "dir",无法一套代码跑通所有系统
  • 输出是原始字符串,需要额外写代码解析成Red的结构化数据(比如块)
  • 性能和稳定性不如纯Red的read函数,还会依赖系统环境

内容的提问来源于stack exchange,提问作者Mateusz Palichleb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:58:19