↓ Skip to main content

v-7z: Automatic ZIP/RAR Scanning and Extraction Tool


v-7z

Archives in, files out — automatically. v-7z is a lightweight automatic archive extraction tool from vtoollab.com, designed for servers, NAS systems, data exchange directories, backup folders, and other automated file-processing environments.

Built with Go and powered by 7-Zip, v-7z periodically scans configured directories, automatically detects ZIP/RAR archives, checks whether an archive is ready to process, and chooses an appropriate extraction directory based on the archive’s internal structure.

Core Features
#

  • Scheduled scanning: Automatically scans configured directories at a specified interval without requiring manual extraction commands.
  • Recursive directory scanning: Searches through nested directories and automatically discovers supported ZIP/RAR archives.
  • Smart extraction directories: Detects whether an archive already contains a directory structure. If not, it creates a folder named after the archive to prevent files from different archives from colliding.
  • File stability detection: Checks the archive’s file size and modification time before extraction, reducing the risk of processing an archive that is still being uploaded.
  • Date-based directories: Supports {yyyymmdd} in scan paths, such as /data/incoming/{yyyymmdd}, which automatically resolves to the current date.
  • Password-protected archives: Supports password-based extraction for encrypted ZIP/RAR archives.
  • Configurable overwrite behavior: Choose whether existing files should be overwritten or preserved.
  • Duplicate processing protection: Can skip archives when the target directory already exists and prevents the same archive from being processed concurrently within the running process.
  • Configurable 7-Zip path: Supports custom 7z / 7z.exe paths for Windows and Linux environments.
  • Lightweight and database-free: Requires no database or external service; a simple JSON configuration file is enough to run the tool.

How to Use
#

  1. Download the archive below and extract it.
  2. Run v-7z.exe. On the first launch, the program automatically creates a config.json configuration file.
  3. Edit the configuration to specify scan directories, archive types, scan intervals, the 7-Zip executable path, and other options.
  4. Run continuously: v-7z performs an initial scan immediately after startup and then scans the configured directories periodically according to the interval setting.

Configuration Example (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
}

Configuration Options
#

OptionDescription
scan_dirsDirectories to scan. Supports the {yyyymmdd} date placeholder.
file_typesArchive extensions to process, such as .zip and .rar.
intervalAutomatic scanning interval in minutes.
overwriteWhether existing files should be overwritten.
passwordPassword for encrypted archives. Leave empty when no password is required.
seven_zip_pathPath to the 7-Zip executable.
skip_if_existWhether to skip an archive when its target directory already exists.
file_stable_secondsNumber of seconds used for the file stability check before extraction.

Extraction Rules
#

v-7z automatically determines where an archive should be extracted based on its internal directory structure.

If the archive already contains a directory:

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

v-7z extracts it directly into the parent directory:

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

If the archive contains files directly at the root:

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

v-7z automatically creates an archive-named directory:

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

This prevents files from multiple archives from being extracted into the same directory and accidentally overwriting each other.

File Stability Detection
#

One important feature of v-7z is its ability to avoid processing files that are still being written.

For example, an FTP or SFTP server may create:

large-data.zip

before the upload has actually completed.

Instead of immediately extracting it, v-7z can compare the file’s state before and after the configured stability period:

First check
    ↓
Record file size and modification time
    ↓
Wait
    ↓
Second check
    ↓
Compare file size and modification time
    ↓
No changes?
    ↓
Start extraction

This is particularly useful for:

  • FTP/SFTP receive directories
  • NAS folders
  • shared network directories
  • backup systems
  • automated data exchange servers

Date-Based Scan Paths
#

Dynamic daily directories can be configured using:

/data/incoming/{yyyymmdd}

For example, on September 4, 2026:

/data/incoming/20260904

On the following day, the same configuration automatically becomes:

/data/incoming/20260905

No daily configuration changes are required.

Typical Workflow
#

A typical v-7z deployment looks like this:

Archive is uploaded
        ↓
v-7z scans the directory
        ↓
Check whether the file is stable
        ↓
Detect ZIP / RAR
        ↓
Inspect archive structure
        ↓
Select extraction directory
        ↓
Run 7-Zip
        ↓
Extraction completed

The program then waits for the next scheduled scan.

Recommended Use Cases#

v-7z is particularly useful for:

  • FTP / SFTP data receive directories
  • NAS archive folders
  • server backup directories
  • daily data exchange directories
  • market data and log processing
  • Windows file servers
  • Linux background automation
  • batch-processing environments

Instead of manually running:

7z x archive.zip

every time a new archive appears, simply keep v-7z running in the background.

Lightweight Architecture
#

The tool intentionally keeps its architecture simple:

                v-7z
                  │
       ┌──────────┼──────────┐
       │          │          │
    Scanner    Analyzer   Scheduler
       │          │          │
       └──────────┼──────────┘
                  │
             Extraction
                  │
                  ▼
                7-Zip

Go handles:

Directory scanning
File stability checks
Archive discovery
Archive structure detection
Extraction policy
Scheduling
Duplicate processing protection

while 7-Zip handles the actual archive parsing and extraction.

This keeps v-7z small, portable, and easy to deploy.

⬇️ Download v-7z.zip
#

Version: 1.0.0 | Platform: Windows (x64)

There are no articles to list here yet.