Skip to content

Qharny/zip_extractor

Repository files navigation

๐Ÿ—œ๏ธ ZIP Extractor Tool

A powerful, user-friendly command-line tool to extract multiple ZIP files from a source directory to multiple destination directories simultaneously.

Version Platform License Visitor Count

โœจ Features

  • ๐Ÿš€ Batch Extraction - Extract all ZIP files from a directory at once
  • ๐ŸŽฏ Multiple Destinations - Extract to multiple locations simultaneously
  • ๐Ÿ“ Auto Directory Creation - Creates destination folders if they don't exist
  • ๐Ÿ›ก๏ธ Error Handling - Gracefully handles corrupted or invalid ZIP files
  • ๐Ÿ“Š Progress Tracking - Shows detailed progress and file information
  • ๐ŸŽจ User-Friendly Interface - Clear messages and helpful guidance
  • ๐Ÿ’พ Preserve Structure - Maintains folder structure within ZIP files
  • ๐Ÿ“ˆ File Size Display - Shows ZIP file sizes in human-readable format

๐Ÿš€ Quick Start

Download & Run (Easiest)

  1. Download the executable from the Releases page
  2. Run the executable:
    • Windows: Double-click zip_extractor.exe or run from Command Prompt
    • Linux/macOS: Run ./zip_extractor in terminal

Command Line Usage

# Run the tool
./extractor


# Show help
./extractor --help

๐Ÿ“– How to Use

Step-by-Step Guide

  1. Start the tool by running the executable
  2. Enter source path - The folder containing your ZIP files
    Enter source folder path for ZIP files: C:\Downloads\ZipFiles
    
  3. Add destinations - Enter one or more destination folders
    Enter destination folder path: C:\Extracted
    Enter another destination path (or press Enter to continue): D:\Backup\Extracted
    Enter another destination path (or press Enter to continue): [Press Enter]
    
  4. Watch the magic happen - The tool will extract all ZIP files to all destinations

Example Workflow

๐Ÿ—œ๏ธ  Welcome to ZIP Extractor Tool!
========================================

Enter source folder path for ZIP files: /home/user/downloads
โœ… Source folder found: /home/user/downloads

๐Ÿ“‚ Setting up destination folders:
Enter destination folder path: /home/user/extracted
โœ… Destination added: /home/user/extracted
Enter another destination path (or press Enter to continue): /backup/extracted
โœ… Destination added: /backup/extracted
Enter another destination path (or press Enter to continue): 

๐Ÿ” Searching for ZIP files in /home/user/downloads...
โœ… Found 3 ZIP file(s):
  ๐Ÿ“ฆ project1.zip (2.5 MB)
  ๐Ÿ“ฆ documents.zip (1.2 MB)
  ๐Ÿ“ฆ photos.zip (15.3 MB)

๐Ÿš€ Starting extraction process...

๐Ÿ“ฆ Processing: project1.zip
  ๐Ÿ“„ Archive contains 25 file(s)
  โœ… Extracted 25 file(s) to: /home/user/extracted/project1
  โœ… Extracted 25 file(s) to: /backup/extracted/project1

๐ŸŽ‰ EXTRACTION COMPLETE!

๐Ÿ’ป System Requirements

  • Operating System: Windows 10+, Linux, or macOS
  • Memory: 100MB RAM minimum
  • Storage: 50MB free space for the tool
  • Permissions: Read access to source directory, write access to destination directories

๐Ÿ› ๏ธ Installation Options

Option 1: Download Executable (Recommended)

  • Download from Releases page
  • No installation required - just run!

Option 2: Build from Source

If you have Dart SDK installed:

# Clone the repository
git clone https://github.com/Qharny/zip_extractor.git
cd zip-extractor-tool

# Install dependencies
dart pub get

# Build executable
dart compile exe main.dart -o zip_extractor.exe

๐Ÿ› ๏ธ Developer Note: Modular Structure

  • The codebase is now modularized! Core logic is split into components in lib/components/.
  • The main entry point for CLI is now main.dart (not extractor.dart).
  • To run from source, use:
    dart run main.dart
  • For building executables, workflows and scripts now compile main.dart.

๐Ÿ“š Help & Documentation

Command Line Options

Option Description
--help, -h Show detailed help information

Getting Help

./extractor --help

This will show:

  • Detailed usage instructions
  • Feature explanations
  • Examples and tips
  • Troubleshooting guidance

๐Ÿ”ง Troubleshooting

Common Issues

"Source folder does not exist"

  • โœ… Check the path is correct
  • โœ… Use absolute paths (full path from root)
  • โœ… Ensure you have read permissions

"No ZIP files found"

  • โœ… Verify ZIP files have .zip extension
  • โœ… Check files aren't corrupted
  • โœ… Ensure ZIP files are directly in the source folder

"Permission denied"

  • โœ… Run as administrator (Windows) or with sudo (Linux/macOS)
  • โœ… Check destination folder permissions
  • โœ… Ensure antivirus isn't blocking the tool

"Extraction failed"

  • โœ… ZIP file might be corrupted
  • โœ… Check available disk space
  • โœ… Verify destination path is valid

Performance Tips

  • Large ZIP files: Be patient, large archives take time
  • Many destinations: Each destination doubles processing time
  • Network drives: Local drives are faster than network locations
  • Antivirus: Add tool to antivirus exclusions for better performance

๐ŸŒŸ Use Cases

Personal Use

  • ๐Ÿ“ Organizing downloaded ZIP files
  • ๐ŸŽฎ Extracting game files to multiple locations
  • ๐Ÿ“ธ Processing photo archives
  • ๐Ÿ“š Managing document collections

Professional Use

  • ๐Ÿข IT deployments to multiple servers
  • ๐Ÿ“Š Data processing workflows
  • ๐Ÿ”„ Backup and archival processes
  • ๐Ÿ‘ฅ Team file distribution

Development

  • ๐Ÿ“ฆ Package distribution
  • ๐Ÿ› ๏ธ Build artifact extraction
  • ๐Ÿ”ง Environment setup automation
  • ๐Ÿ“‹ Project template deployment

๐Ÿค Contributing

We welcome contributions! Here's how you can help:

  1. Report Bugs - Open an issue with details
  2. Suggest Features - Share your ideas
  3. Submit Pull Requests - Help improve the code
  4. Improve Documentation - Help others understand better

Development Setup

# Clone the repository
git clone https://github.com/Qharny/zip_extractor.git
cd zip-extractor-tool

# Install Dart SDK (if not already installed)
# Visit: https://dart.dev/get-dart

# Install dependencies
dart pub get

# Run the tool
dart run main.dart

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Built with Dart programming language
  • Uses the archive package for ZIP handling
  • Inspired by the need for efficient batch ZIP extraction

๐Ÿ“ž Support

๐Ÿš€ What's Next?

Planned features for future versions:

  • ๐ŸŽจ GUI version
  • ๐Ÿ” Password-protected ZIP support
  • ๐Ÿ“Š Extraction statistics export
  • ๐Ÿ”„ Watch folder mode
  • ๐ŸŽฏ Selective file extraction
  • ๐Ÿ“ฑ Mobile companion app

Made with โค๏ธ for the community

โญ Star this repository if you find it helpful! โญ

Download Latest Release | Report Issue | Request Feature

About

A Dart CLI tool to extract multiple ZIP files.

Resources

License

Stars

Watchers

Forks

Packages

No packages published