【n8n教程】:Local File Trigger节点,本地文件监控

无需任何云端服务,直接监控本地文件夹变化,自动触发工作流处理文件。适用于文件自动转换、数据监控、文件备份等场景。


什么是 Local File Trigger?

Local File Trigger 是 n8n 中最实用的本地触发器之一。它像一个"文件卫士",24小时守护您指定的文件夹,一旦检测到文件被添加、修改或删除,立即触发工作流自动处理。

特别提示:⚠️ 此节点仅支持自建 n8n(Self-hosted),不支持 n8n Cloud。如果您还没部署自建 n8n,可参考使用 Docker 快速启动。


核心概念速览

三个关键配置参数

参数名作用示例
Trigger On选择监听事件类型文件变化、文件夹变化
File/Folder to Watch指定监听的目录路径/data/uploads/C:\Documents\incoming\
Watch for选择触发的具体事件新增、修改、删除

支持的文件事件

n8n Local File Trigger 工作流的基本结构
n8n Local File Trigger 工作流的基本结构

实战步骤:快速上手

第1步:添加 Local File Trigger 节点

  1. 1. 打开 n8n 工作流编辑器
  2. 2. 点击画布左侧"+"按钮,搜索 Local File Trigger
  3. 3. 拖拽节点到画布上

第2步:配置监听参数

在节点配置面板中进行以下设置:

配置 1 - 选择监听类型

Trigger On 下拉框中,选择:

配置 2 - 指定文件夹路径

配置 3 - 选择事件类型

Watch for 中选择要监听的事件(可多选):


    
    
    
  ☑ File Added         // 新文件到达时触发
☑ File Changed       // 文件被修改时触发
☑ File Deleted       // 文件被删除时触发

第3步:配置高级选项(Options)

点击节点右侧 Options 展开高级设置:

忽略特定文件(Ignore)

排除不需要监听的文件或文件夹,支持通配符语法:


    
    
    
  # 忽略单个文件
.DS_Store
*.tmp

# 忽略特定文件夹
node_modules/
.git/
**/temp/**

最大文件夹深度(Max Folder Depth)

限制监听的文件夹层级深度,默认值为 2 层:


    
    
    
  Max Folder Depth: 2
效果:只监听 /folder/ 和 /folder/subfolder/ 
不会监听 /folder/subfolder/subsubfolder/

包含链接文件(Include Linked Files/Folders)

勾选则同时监听符号链接文件的变化。

n8n Local File Trigger 实际工作流示例界面
n8n Local File Trigger 实际工作流示例界面

初级案例:CSV 文件自动提取

场景说明

监听 /uploads/csv/ 文件夹,当新的 CSV 文件上传时,自动提取数据并转换为 JSON 格式,保存处理结果。

完整可执行工作流

以下是一个开箱即用的完整工作流 JSON 代码,复制到 n8n 导入即可使用:


    
    
    
  {
  "name"
: "CSV 文件自动提取与转换",
  "nodes"
: [
    {

      "parameters"
: {
        "triggerOn"
: "folderChanged",
        "folderToWatch"
: "/data/uploads/csv",
        "watchFor"
: ["fileAdded"],
        "maxFolderDepth"
: 1
      }
,
      "id"
: "1",
      "name"
: "Local File Trigger",
      "type"
: "n8n-nodes-base.localFileTrigger",
      "typeVersion"
: 1,
      "position"
: [250, 300]
    }
,
    {

      "parameters"
: {
        "operation"
: "extractFromCsv"
      }
,
      "id"
: "2",
      "name"
: "Extract from CSV",
      "type"
: "n8n-nodes-base.extractFromFile",
      "typeVersion"
: 1,
      "position"
: [450, 300],
      "credentials"
: {}
    }
,
    {

      "parameters"
: {
        "mode"
: "runOnceForAllItems",
        "jsCode"
: "return items.map(item => ({\n  ...item.json,\n  processedAt: new Date().toISOString(),\n  fileName: $('Local File Trigger').first().json.name\n}));"
      }
,
      "id"
: "3",
      "name"
: "添加处理时间戳",
      "type"
: "n8n-nodes-base.functionItem",
      "typeVersion"
: 1,
      "position"
: [650, 300]
    }
,
    {

      "parameters"
: {
        "filePath"
: "/data/processed/{{ $node['Local File Trigger'].json.name }}.json",
        "mode"
: "overwrite",
        "dataPropertyName"
: "data"
      }
,
      "id"
: "4",
      "name"
: "保存为 JSON 文件",
      "type"
: "n8n-nodes-base.writeBinaryFile",
      "typeVersion"
: 1,
      "position"
: [850, 300]
    }

  ]
,
  "connections"
: {
    "Local File Trigger"
: {
      "main"
: [
        [

          {

            "node"
: "Extract from CSV",
            "type"
: "main",
            "index"
: 0
          }

        ]

      ]

    }
,
    "Extract from CSV"
: {
      "main"
: [
        [

          {

            "node"
: "添加处理时间戳",
            "type"
: "main",
            "index"
: 0
          }

        ]

      ]

    }
,
    "添加处理时间戳"
: {
      "main"
: [
        [

          {

            "node"
: "保存为 JSON 文件",
            "type"
: "main",
            "index"
: 0
          }

        ]

      ]

    }

  }

}

工作流执行流程


    
    
    
  1️⃣  Local File Trigger 
   ↓ 检测到 /data/uploads/csv/ 有新文件
   
2️⃣  Extract from CSV
   ↓ 自动解析 CSV 行数据为 JSON 对象数组
   
3️⃣  添加处理时间戳
   ↓ 为每条记录添加处理时间和原始文件名
   
4️⃣  保存为 JSON 文件
   ↓ 输出到 /data/processed/ 文件夹

实际操作步骤

  1. 1. 导入工作流:在 n8n 中选择"Import from File",粘贴上述 JSON 代码
  2. 2. 修改路径:根据您的系统环境修改监听路径(/data/uploads/csv → 您的实际路径)
  3. 3. 保存激活:点击"Save",然后切换开关"Active"激活工作流
  4. 4. 测试:上传一个 CSV 文件到监听文件夹,观察工作流是否自动触发
  5. 5. 查看结果:检查 /data/processed/ 文件夹是否生成了转换后的 JSON 文件

进阶技巧

技巧 1:排除临时文件

当文件夹内有大量临时文件时,通过 Ignore 规则优化性能:


    
    
    
  # Options 面板中的 Ignore 字段输入:
*.tmp
*.temp
.~*
Thumbs.db
.DS_Store
~$*

技巧 2:监听多个事件类型

需要同时处理文件添加和修改?在 Watch for 中勾选多个选项:


    
    
    
  ☑ File Added
☑ File Changed
☑ File Deleted

然后在后续节点用 IF 条件判断事件类型:


    
    
    
  // 在 IF 节点中输入表达式:
{{ $node['Local File Trigger'].json.eventType === 'add' }}

技巧 3:限制监听深度避免性能问题

如果目录结构很深(多层子文件夹),设置 Max Folder Depth 限制扫描深度:


    
    
    
  Max Folder Depth: 1   // 仅监听一层
Max Folder Depth: 3   // 监听三层

技巧 4:与其他节点组合

Local File Trigger 通常与以下节点组合使用:


常见问题排查

问题原因解决方案
工作流未触发路径配置错误或权限不足确认路径存在且 n8n 进程有读写权限
同时触发多次文件被多次修改或临时文件干扰在 Ignore 中排除临时文件类型
大文件处理缓慢内存不足或文件过大增加 Max Folder Depth 限制或分批处理
仅在 Cloud 版本不可用此功能仅自建支持需要部署自建 n8n 实例

推荐应用场景

文件自动转换:监听上传文件夹,自动转换格式(PDF→图片、Excel→CSV)

实时数据同步:监听本地数据文件,自动上传到云端或数据库

文件夹整理:定期扫描文件夹,按类型或日期自动分类整理

数据处理流水线:监听原始数据文件,触发数据清洗、验证、入库工作流

备份与归档:监听重要文件变化,自动备份到网络存储

日志监控与告警:监听日志文件更新,提取错误信息发送警报


总结

要点内容
何时用需要监听本地文件夹变化时
优势无需云端,隐私安全,响应快速
限制仅支持自建 n8n,不支持 Cloud
核心参数Trigger On、Folder to Watch、Watch for
最佳实践配合 Extract/Read 节点提取数据,用 Ignore 排除干扰文件

官方文档[1]
n8n系列教程[2]

引用链接

[1] 官方文档: https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.localfiletrigger/
[2] n8n系列教程: https://www.undsky.com/blog/?category=n8n%E6%95%99%E7%A8%8B#