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

如何遍历子文件夹查找指定文件并加载到Photoshop活动文档

Photoshop 递归遍历子文件夹匹配文件并导入活动文档实现方案

实现说明

脚本基于Photoshop原生支持的ExtendScript语法编写,兼容CS6及以上全版本Photoshop,无需额外安装插件。核心能力覆盖需求:

  • 运行时手动选择父级根目录,自动递归遍历目录下所有层级的不固定名称子文件夹,无需提前配置子文件夹路径
  • 内置可自定义的文件名匹配规则,默认适配[尺寸宽]x[尺寸高]_F[序号].jpg命名格式
  • 匹配到的文件会自动导入到当前打开的活动文档中,导入逻辑可自定义调整

完整脚本代码

将以下代码保存为后缀为.jsx的文件即可在Photoshop中调用:

// 校验当前是否存在活动文档
if (app.documents.length === 0) {
    alert("请先打开需要导入素材的目标文档后再运行脚本");
    throw new Error("无活动文档");
}

var activeDoc = app.activeDocument;
// 选择待遍历的父级文件夹
var rootFolder = Folder.selectDialog("请选择包含所有子文件夹的父级目录");
if (rootFolder == null) {
    // 用户取消选择则直接退出
    exit();
}

// 文件名匹配正则,可根据需求自行修改
// 当前规则:匹配 数字x数字_F数字.jpg 格式,不区分大小写
var fileMatchReg = /^\d+x\d+_F\d+\.jpg$/i;

/**
 * 递归遍历文件夹处理匹配文件
 * @param {Folder} folder 要遍历的文件夹对象
 */
function traverseFolder(folder) {
    var allFiles = folder.getFiles();
    for (var i = 0; i < allFiles.length; i++) {
        var currentItem = allFiles[i];
        if (currentItem instanceof Folder) {
            // 是子文件夹则递归遍历
            traverseFolder(currentItem);
        } else {
            // 是文件则校验命名规则
            if (fileMatchReg.test(currentItem.name)) {
                // 匹配成功,导入到当前活动文档(默认导入为智能对象,可修改)
                try {
                    activeDoc.place(new File(currentItem.fsName));
                    // 可选:导入后自动对齐到画布中心,不需要可注释掉下一行
                    activeDoc.activeLayer.translate(
                        (activeDoc.width.as("px") - activeDoc.activeLayer.bounds[2].as("px"))/2,
                        (activeDoc.height.as("px") - activeDoc.activeLayer.bounds[3].as("px"))/2
                    );
                } catch(e) {
                    alert("导入文件失败:" + currentItem.fsName + "\n错误信息:" + e.message);
                }
            }
        }
    }
}

// 执行遍历
traverseFolder(rootFolder);
alert("所有匹配文件导入完成");

使用方法

  • 提前打开需要导入素材的目标PS文档
  • 点击Photoshop顶部菜单:文件 > 脚本 > 浏览,选中刚才保存的.jsx脚本文件
  • 在弹出的目录选择框中,选中存放所有子文件夹的父级根目录,点击确认
  • 等待脚本自动执行,完成后会弹出完成提示,所有符合命名规则的文件已导入到当前文档中

自定义修改指引

  • 调整文件匹配规则:找到代码中var fileMatchReg = /^\d+x\d+_F\d+\.jpg$/i;行,替换为需要的正则规则即可。比如需要同时匹配png格式素材,可修改为/^\d+x\d+_F\d+\.(jpg|png)$/i
  • 调整导入方式:当前默认调用place()方法导入为智能对象,如果需要导入为扁平化普通图层,可替换为打开文件后复制粘贴到活动文档的逻辑
  • 调整导入位置:当前默认导入后自动对齐到画布中心,不需要该功能直接注释掉对应translate方法的代码段即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:48:25