โ ๏ธ Pre-1.0 โ not fully tested.
Back up your SD card before using any destructive or bulk operations.
- Overview
- Features
- FAT32 Large-File Handling
- Controls
- Build Instructions
- Runtime File Layout
- Applet Mode Warning
- Known Limitations & Roadmap
- Safety Scope
- License
Switch 7zip is a homebrew file manager and archive utility for the Nintendo Switch, designed around the realities of the HAC-001 handheld screen and FAT32 SD cards.
It lets you browse your SD card, inspect and selectively extract archives, compress files to ZIP, and gracefully handle the FAT32 4 GiB file-size ceiling โ all through a native SDL2 interface built for the Switch's physical controls.
Not affiliated with Nintendo, 7-Zip, Igor Pavlov, libarchive, or devkitPro.
No 7-Zip binaries or LZMA SDK code are included or redistributed.
- SD card browser with sorting, filtering, and dual-pane helpers
- File copy, move, rename, new folder and file creation
- Trash and restore workflow
- Bookmarks and recent folders
- Extraction via libarchive
- Archive preview and selective extraction
- ZIP compression
- Multipart archive diagnostics
- Free-space preflight before large operations
- FAT32 4 GiB guard
- Three configurable oversized-file modes (see below)
- Text / log / config viewer with small inline editor
- Hex viewer
- PNG / JPG / BMP image viewer (requires
switch-sdl2_image)
- Operation logs:
latest.logandfailed_operation.txt - One-tap diagnostic bundle export
- Applet Mode warning for safer large-archive work
FAT32 cannot store a single file larger than 4 GiB โ 1 byte. Switch 7zip exposes three modes to handle oversized files during extraction:
| Mode | Behavior |
|---|---|
BLOCK |
Default. Refuses to extract any single file that would exceed 4 GiB. Safest choice. |
SPLIT |
Writes oversized files as FAT32-safe .part chunks inside a .split/ folder. |
CONCAT |
Writes oversized files as Switch concatenation folders and attempts to set the archive/concatenation attribute. Switch-specific. |
SPLIT and CONCAT are not triggered by archive size alone. They are only used when an individual file inside the archive is larger than FAT32 allows.
To enable one of these modes:
- Launch Switch 7zip.
- Press
+to open the action menu. - Open Settings.
- Find the FAT32 oversized-file handling option.
- Change the mode from
BLOCKtoSPLITorCONCAT. - Exit Settings.
- Select the archive.
- Press
Xto extract.
Use SPLIT when you only need to store or move the oversized output on FAT32. Use CONCAT only when another Switch tool expects Horizon OS concatenated-file folders.
Example output structures
SPLIT mode:
bigfile.bin.split/
0000.part
0001.part
0002.part
CONCAT mode:
bigfile.bin/
00
01
02
CONCAT output is only useful with software that understands Horizon OS's concatenated-file behavior.
| Button | Action |
|---|---|
A |
Open / confirm |
B |
Back / cancel |
X |
Extract / selected operation |
Y |
Mark / unmark item |
+ |
Action menu |
- |
Quick paths / bookmarks |
L / R |
Page or viewer navigation |
ZL |
Log / viewer shortcut (supported screens) |
ZR |
Refresh / secondary action (supported screens) |
Install devkitPro and the required Switch portlibs:
sudo dkp-pacman -Syu
sudo dkp-pacman -S switch-dev switch-libarchive switch-sdl2 switch-sdl2_imagemake clean && makeThis produces Switch7zip.nro. Copy it to your Switch:
sdmc:/switch/Switch7zip/Switch7zip.nro
All user data lives under sdmc:/switch/Switch7zip/:
sdmc:/switch/Switch7zip/
โโโ Switch7zip.nro
โโโ config.ini
โโโ logs/
โ โโโ latest.log
โ โโโ failed_operation.txt
โ โโโ diagnostic_bundle.txt
โโโ .trash/
Running homebrew in Applet Mode gives the app less available memory. Long operations on large archives may fail partway through as a result.
For large-archive work, launch Switch 7zip in full-memory (title-override) mode. The app will warn you if Applet Mode is detected, but choosing the right launch method is your responsibility.
This section is intentionally candid. Here is what still needs work before 1.0:
๐จ UI / UX polish
The SDL2 interface is functional but not final. Planned improvements:
- Better spacing and visual hierarchy
- Cleaner modal design
- Consistent icon set
- Configurable file-row density
- Improved touch support
- Dual-pane polish
- Clearer operation-state feedback
๐ฆ Extraction destination flow
Extraction works, but choosing a destination is awkward. A proper Extract here / Extract toโฆ flow is planned.
๐ Log discoverability
The app writes useful diagnostic logs, but surfacing latest.log, failed_operation.txt, and the diagnostic bundle from inside the UI needs to be much more obvious.
โ๏ธ Background operations
Long archive operations currently block the UI. True background processing is a planned rework:
- Background worker thread
- Browsable UI during active jobs
- Job queue support
- Pause / resume where feasible
- Clear cancel / retry / skip controls
๐๏ธ Direct delete shortcut
Delete and Trash are available through the action menu, but there is no dedicated delete button or refined delete UX yet.
๐งน Source structure cleanup
source/main.c is too large and needs splitting into focused modules. This is the biggest code-quality blocker before 1.0:
ui.c โ rendering and layout
input.c โ controller handling
state.c โ application state
overlays.c โ modals and popups
actions.c โ file and archive operations
settings.c โ config persistence
๐งช Testing gaps
The app has been validated through host smoke tests and build checks, but has not been fully tested across every Switch model, archive type, SD-card format, or homebrew launch mode. Use extra caution with:
- Very large archives
- Encrypted or RAR5 archives
- Multipart archives
- exFAT SD cards
- Destructive operations on important data
Switch 7zip does not include, require, or enable:
- Nintendo SDK or proprietary files
- Firmware or encryption keys
- Copyrighted game files
- DRM bypass material
- Piracy workflows of any kind
It is a file and archive utility for user-owned content on a homebrew-enabled Switch.