跳转至

解压嵌套压缩包

场景介绍

扫描路径 archive/loop 下所有嵌套压缩包,解压输出到目录 output。

处理流程

# 解压嵌套压缩包流程
# 注意: 循环流程请谨慎使用, 防止死循环

flow:
  steps:
    # 将压缩包拷贝到output目录
    - name: scan
      dir: archive/loop
    - name: transfer
      mode: copy
      keep_structure: false
      target_dir: output

    # 循环处理output目录下的文件
    - name: scan
      dir: output
    # 循环结束条件:
    # 上下文中文件数量为0时结束循环
    - name: loop
      # 最大循环次数, 防止意外死循环
      max_loops: 10
      # 执行步骤 同: flow.steps 一样
      steps:
        # 解压文件
        - name: archive
          mode: extract
          target_dir: output
          stat_file_name: extract

        # 删除解压成功的文件
        # 这里需要将已经解压的文件移到其他目录/删除
        # 防止循环中重复解压
        - name: remove

        # 清理空文件夹
        - name: empty
          dir: output

        # 再次重新扫描output目录, 并识别是否有新的压缩包
        - name: scan
          dir: output
        - name: archive
          mode: list