Skip to content

Latest commit

 

History

History
142 lines (104 loc) · 9 KB

File metadata and controls

142 lines (104 loc) · 9 KB

Simple Zip Drive for Windows

Platform: Windows .NET 10.0 Platform License: GPL v3 GitHub release

Simple Zip Drive is a high-performance, user-mode filesystem utility that allows you to mount ZIP, 7Z, and RAR archives as virtual drives or NTFS directory mount points. It provides seamless, read-only access to compressed data without the need for manual extraction.

The solution includes two variants:

  • SimpleZipDrive - Built on DokanNet
  • SimpleZipDrive_WinFsp - Built on WinFsp

Unlike traditional archive utilities that extract the entire archive to a temporary folder, Simple Zip Drive utilizes a hybrid streaming engine to minimize memory overhead and maximize random-access performance.

Screenshot


🚀 Key Features

  • Multi-Format Support: Mount ZIP, 7Z, and RAR archives seamlessly.
  • Virtual Drive Mounting: Mount any supported archive as a dedicated drive letter (e.g., M:\) or a folder path. The drive label automatically shows the archive name.
  • Mount Type Choice: Choose between drive letter or NTFS folder mounting via Settings, or use the dedicated Mount as Drive Letter and Mount as Folder menu items.
  • Hybrid Caching Engine:
    • Stored Entries (ZIP): Uncompressed entries are read directly from the source archive with zero-copy, zero-cache performance — no RAM or disk overhead.
    • Small Files: Cached in-memory for near-instantaneous access.
    • Large Files (≥512 MB by default): Automatically offloaded to a temporary disk cache to prevent RAM exhaustion. The per-file memory threshold can be adjusted via the Settings window.
  • Streaming Architecture: The source archive is accessed via a direct file stream, supporting archives of virtually any size.
  • Zero-Configuration UI: Supports drag-and-drop functionality for automatic mounting to the first available drive letter (M-Q). The mounted drive label displays the archive filename.
  • Configurable Cache: Open Settings > RAM Limit to adjust the per-file RAM cache limit. The value is automatically clamped to 90% of available system memory to prevent out-of-memory errors.
  • Configurable Mount Type: Open Settings to choose the default mount type: Drive Letter (auto-selects M-Q) or Folder (browse for an NTFS directory). You can also use File > Mount as Drive Letter or File > Mount as Folder for one-time selection.
  • Encrypted Archive Support: Prompts for passwords when accessing protected archives.
  • Automated Maintenance: Integrated update checker (with MessageBox prompt before opening the browser) and automatic cleanup of temporary cache files upon unmounting. Also cleans up orphaned temp directories from previous sessions on startup.
  • Enterprise Logging: Comprehensive error tracking with local log rotation and remote diagnostic reporting.

🛠 Prerequisites

Before running Simple Zip Drive, ensure your system meets the following requirements:

  1. .NET 10.0 Runtime: Download the latest .NET Desktop Runtime.
  2. Filesystem Driver (depends on which variant you use):
    • For SimpleZipDrive (Dokan): Download and install the latest DokanSetup.exe from the Official Releases.
    • For SimpleZipDrive_WinFsp: Download and install WinFsp.

📦 Project Variants

Variant Driver Library Notes
SimpleZipDrive Dokan DokanNet Original implementation
SimpleZipDrive_WinFsp WinFsp winfsp.net Alternative implementation

Both variants share the same UI and feature set; only the underlying filesystem driver differs.


📖 Usage Guide

Method 1: Drag-and-Drop (Recommended)

Simply drag any .zip, .7z, or .rar file and drop it onto SimpleZipDrive.exe. The application will automatically attempt to mount the archive to the first available drive letter in the sequence: M:, N:, O:, P:, Q:.

Method 2: Menu

Use the File menu to mount archives:

  • Mount Archive (Ctrl+M) - Uses the default mount type from Settings.
  • Mount as Drive Letter - Prompts for a file, then auto-selects a drive letter.
  • Mount as Folder - Prompts for a file, then lets you browse for an NTFS folder.

Method 3: Command Line Interface (CLI)

For advanced users or automation, use the following syntax:

SimpleZipDrive.exe <PathToArchiveFile> <MountPoint>

Examples:

  • Mount a ZIP file to a drive letter:
    SimpleZipDrive.exe "C:\Data\Archive.zip" M
  • Mount a 7Z file to a drive letter:
    SimpleZipDrive.exe "C:\Data\Archive.7z" N
  • Mount a RAR file to a drive letter:
    SimpleZipDrive.exe "C:\Data\Archive.rar" O
  • Mount to an NTFS folder:
    SimpleZipDrive.exe "C:\Data\Archive.zip" "C:\Mount\MyProject"

Unmounting

To safely unmount the drive and clean up temporary resources:

  1. Click the Unmount button in the toolbar.
  2. Alternatively, close the application window.

🔍 Technical Architecture

  • Read-Only Integrity: The filesystem is strictly read-only. No modifications are made to the source archive.
  • Memory Efficiency: The application does not load the entire archive into RAM. It reads the Central Directory into a dictionary for fast lookups and streams file data only when requested. Stored (uncompressed) entries in ZIP archives bypass caching entirely using direct-read with Windows RandomAccess for near-zero overhead. The per-file RAM cache limit is configurable via Settings > RAM Limit and is automatically clamped to 90% of available system memory. A global memory cap at 90% of available free memory ensures stability even under heavy load.
  • Permissions: Mounting to drive letters or system-protected directories may require Administrator Privileges. If you encounter "Access Denied" errors, right-click the executable and select "Run as Administrator."
  • Temporary Storage: Disk-based caching for large files occurs in %TEMP%\SimpleZipDrive. These files are purged automatically during graceful shutdown, and orphaned directories from crashed sessions are cleaned up on application startup.

❓ Troubleshooting

Issue Solution
Dokan Initialization Failed Ensure the Dokan driver is installed and you have restarted your PC after installation. The app detects missing drivers and offers to open the download page automatically.
WinFsp Not Found Install WinFsp from GitHub. The app detects missing drivers and offers to open the download page automatically.
Drive Letter in Use Specify a different drive letter via CLI or ensure letters M-Q are not mapped to network shares.
Out of Memory Occurs if too many large files are opened simultaneously. Close applications accessing the virtual drive to free up cache.
Archive File Error Simple Zip Drive supports standard ZIP, 7Z, and RAR formats. Other formats like .tar.gz or .bz2 are not supported.
Password Prompt Not Appearing Some encrypted archives may use unsupported encryption methods. Ensure your archive uses standard ZIP, 7Z, or RAR encryption.

📜 License & Acknowledgments

This project is licensed under the GPLv3 License – see the LICENSE file for details.

Third-Party Libraries:


🤝 Contributing & Support

⭐ If you like this project, please give us a star on GitHub! ⭐