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

如何通过DXL遍历Fruits项目文件夹,以只读模式打开Apples模块?

解决DXL遍历项目文件夹并打开指定模块的问题

你的代码无法运行的核心问题是直接对字符串PROJECT_NAME进行遍历,而DXL需要通过Project对象和Folder对象来遍历项目结构,同时还要处理嵌套文件夹的情况(比如Fruits→ColorRed→Apples这种多层结构)。

以下是可以实现需求的DXL代码,支持递归遍历项目下所有嵌套文件夹,找到目标模块后以只读模式打开:

string MODULE_NAME = "Apples"
string PROJECT_NAME = "Fruits"

// 递归遍历文件夹及其子文件夹,查找目标模块
void findAndOpenModule(Folder currentFolder) {
    // 遍历当前文件夹下的所有模块
    Module m
    for m in currentFolder do {
        if (name(m) == MODULE_NAME) {
            // 以只读模式打开找到的模块
            Module openedMod = read(fullName(m))
            print "成功打开模块: " fullName(m) "\n"
            return // 找到后停止遍历
        }
    }
    
    // 递归遍历当前文件夹下的子文件夹
    Folder subFolder
    for subFolder in currentFolder do {
        findAndOpenModule(subFolder)
    }
}

// 主逻辑:获取目标项目并启动遍历
Project targetProject = find(PROJECT_NAME)
if (targetProject != null) {
    // 遍历项目下的所有根文件夹
    Folder rootFolder
    for rootFolder in targetProject do {
        findAndOpenModule(rootFolder)
    }
} else {
    print "未找到项目: " PROJECT_NAME "\n"
}

关键代码说明:

  • Project targetProject = find(PROJECT_NAME):通过项目名称获取对应的Project对象,这是遍历项目结构的起点
  • 递归函数findAndOpenModule:先遍历当前文件夹下的所有模块,匹配到目标名称就打开;再递归遍历子文件夹,确保不会遗漏嵌套层级里的模块
  • fullName(m):获取模块的完整路径,避免同名模块冲突,同时作为read()的参数正确打开模块
  • name(m):获取模块的短名称(即你要匹配的"Apples")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 01:25:09