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

压缩包,自动发现,自动解压。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 等环境均可使用。 - 轻量无数据库:不依赖数据库,配置文件即可运行,适合长期后台运行。
使用步骤#
- 下载 下方的压缩包并解压。
- 运行
v-7z.exe,程序首次启动时会自动生成config.json配置文件。 - 编辑配置:设置需要扫描的目录、归档类型、扫描周期以及 7-Zip 路径等参数。
- 运行:程序启动后立即执行一次扫描,之后按照
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_path | 7-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)
这里还没有任何文章可以列出。