↓ 跳过正文

v-7z:自动扫描与解压 ZIP/RAR 压缩包


v-7z

压缩包,自动发现,自动解压。v-7z 是 vtoollab.com 为服务器、NAS、数据交换目录等场景设计的轻量级自动解压工具。它基于 Go 编写,通过调用 7-Zip 定时扫描指定目录,自动识别 ZIP/RAR 文件,并根据压缩包内部目录结构选择合适的解压方式。

核心优势
#

  • 自动定时扫描:按照设定的时间间隔周期性检查目录,无需手动执行解压命令。
  • 递归扫描目录:支持多级子目录,可以自动发现指定目录下的 ZIP、RAR 等归档文件。
  • 智能解压目录:自动判断压缩包内部是否已经包含目录;没有目录时自动创建与压缩包同名的文件夹,避免不同归档之间发生文件冲突。
  • 文件稳定性检测:解压前检查文件大小和修改时间是否保持稳定,降低正在上传中的压缩包被提前处理的风险。
  • 日期目录支持:扫描路径支持 {yyyymmdd},例如 /data/incoming/{yyyymmdd} 会自动对应当天的日期目录。
  • 密码解压:支持配置 ZIP/RAR 等加密归档的解压密码。
  • 覆盖策略可控:可以选择覆盖已有文件,或者保留已经存在的文件。
  • 重复处理保护:支持跳过已经存在目标目录的归档,并在程序运行期间避免同一个文件被重复处理。
  • 7-Zip 可配置:支持自定义 7z / 7z.exe 路径,Windows、Linux 等环境均可使用。
  • 轻量无数据库:不依赖数据库,配置文件即可运行,适合长期后台运行。

使用步骤
#

  1. 下载 下方的压缩包并解压。
  2. 运行 v-7z.exe,程序首次启动时会自动生成 config.json 配置文件。
  3. 编辑配置:设置需要扫描的目录、归档类型、扫描周期以及 7-Zip 路径等参数。
  4. 运行:程序启动后立即执行一次扫描,之后按照 interval 设置的分钟数周期性检查并自动解压。

配置示例 (config.json)
#

{
  "scan_dirs": [
    "./incoming",
    "/data/receive/{yyyymmdd}"
  ],
  "file_types": [
    ".zip",
    ".rar"
  ],
  "interval": 5,
  "overwrite": false,
  "password": "",
  "seven_zip_path": "7z",
  "skip_if_exist": true,
  "file_stable_seconds": 10
}

配置说明
#

配置项说明
scan_dirs要扫描的目录,支持 {yyyymmdd} 日期占位符
file_types要处理的压缩包类型,例如 .zip、.rar
interval自动扫描周期,单位为分钟
overwrite是否覆盖已经存在的文件
password加密压缩包密码,不需要密码时留空
seven_zip_path7-Zip 可执行文件路径
skip_if_exist目标目录已经存在时是否跳过处理
file_stable_seconds解压前文件稳定性检查时间

解压规则
#

v-7z 会根据压缩包内部结构自动选择输出方式。

如果:

backup.zip
└── data/
    ├── a.txt
    └── b.txt

压缩包内部已经包含目录,则直接解压到当前目录:

data/
├── backup.zip
└── data/
    ├── a.txt
    └── b.txt

如果:

backup.zip
├── a.txt
├── b.txt
└── c.txt

压缩包内部没有目录,则自动创建:

backup.zip
backup/
├── a.txt
├── b.txt
└── c.txt

这样可以避免多个压缩包解压到同一个目录后产生文件名冲突。

适用场景
#

v-7z 特别适合:

  • FTP / SFTP 数据接收目录
  • NAS 自动归档
  • 服务器备份目录
  • 每日数据交换目录
  • 行情、日志等批量数据处理
  • Windows 文件服务器
  • Linux 后台自动化任务

对于不断产生压缩包的目录,只需要让 v-7z 常驻运行即可:

压缩包产生
    ↓
v-7z 定时扫描
    ↓
检测文件是否稳定
    ↓
识别 ZIP / RAR
    ↓
分析内部目录
    ↓
自动选择输出目录
    ↓
7-Zip 解压

⬇️ 立即下载 v-7z.zip
#

版本:1.0.0 | 系统:Windows (x64)

这里还没有任何文章可以列出。