Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🗜️ Archive Manager

A lightweight desktop app for compressing and extracting ZIP archives.
Built with Python and FreeSimpleGUI — a first dive into building real GUI applications.

Python FreeSimpleGUI zipfile Desktop GUI



✨ Features

  • 📦 Compress: Select multiple files at once and pack them into a compressed.zip in any destination folder.
  • 📂 Extract: Pick any .zip archive and extract its contents to a chosen directory.
  • 🖱️ File Browsing: Native file and folder dialogs — no manual path typing needed.
  • ✅ Feedback: Success and error messages update directly in the window after every action.
  • 🗂️ Tabbed Layout: Compress and Extract live in clean separate tabs — no clutter.

🧠 Under the Hood

The GUI in main.py is kept completely separate from the logic. All compression and extraction is handled by two small utility modules using Python's built-in zipfile library:

# zip_creator.py — packs multiple files into one archive
def make_archive(filepaths, dest_dir):
    dest_dir = pathlib.Path(dest_dir, "compressed.zip")
    with zipfile.ZipFile(dest_dir, "w") as archive:
        for filepath in filepaths:
            filepath = pathlib.Path(filepath)
            archive.write(filepath, arcname=filepath.name)

# zip_extractor.py — unpacks an archive to a target folder
def extract_archive(archive_path, dest_dir):
    with zipfile.ZipFile(archive_path, "r") as archive:
        archive.extractall(dest_dir)

The main event loop reads GUI events with a match statement and delegates to the right utility — keeping main.py clean and readable.


📁 Project Structure

Archive-Manager/
├── utils/
│   ├── zip_creator.py    # Compression logic
│   └── zip_extractor.py  # Extraction logic
├── main.py               # GUI layout & event loop
├── requirements.txt      # Python dependencies
└── README.md

🚀 Getting Started

  1. Clone the repository:

    git clone https://github.com/AndrewTechTips/Archive-Manager.git
    cd Archive-Manager
  2. Install dependencies:

    pip install -r requirements.txt
  3. Run the app:

    python main.py

📬 Contact

"Everything fits better in a zip." 🗜️

About

Desktop ZIP compressor and extractor, with the GUI kept strictly separate from the zipfile logic underneath it.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages