A professional, high-performance Windows file manager built with C++ and Qt6, featuring a modern web-based UI bridged to a robust native backend.
This project implements a hybrid architecture where the complex file system logic and Windows API integrations are handled in C++, while the user interface is rendered using Chromium (Qt WebEngine). A high-speed asynchronous bridge connects the two layers for a seamless experience.
- High-Performance Listing: Asynchronous directory enumeration using
std::filesystem. - Full File Operations: Copy, move, rename, and delete (with full support for the Windows Recycle Bin).
- Tabbed Browsing: Multi-tab interface with session memory.
- Search: Integrated fast recursive search.
- Shell Icons: Native system icons fetched via
SHGetFileInfo. - Native Context Menus: Full COM-level integration for the explorer-like right-click experience.
- Path Handling: Enhanced support for long paths and filename validation.
- Tagging System: A custom, local JSON-based tagging engine to categorize and find files effortlessly.
- Embedded Terminal: Real-time integration with PowerShell/CMD.
- Previews: Live preview support for text, code, and images.
- Favorites & Navigation: Sidebar with drive shortcuts, quick access, and pinned folders.
The application is split into three main layers:
- Backend (C++): Handles direct OS interactions, threading, and file metadata.
- Web Bridge (
fm::WebBridge): Exposes native objects to JavaScript viaQWebChannel, enabling direct, asynchronous calls from the frontend. - Frontend (HTML/CSS/JS): A modern, reactive UI for a sleek user experience.
graph LR
subgraph UI
A[index.html] -- JS Events --> B[WebBridge]
end
subgraph Core
B -- Q_INVOKABLE --> C[FileEngine]
B -- signals --> D[MainWindow]
C -- threading --> E[File System]
end
- Visual Studio 2022 (MSVC 64-bit)
- CMake 3.21+
- Qt6 SDK (Required components:
Widgets,Concurrent,WebEngineWidgets,WebChannel)
# 1. Configure the project
cmake -S . -B build -DCMAKE_PREFIX_PATH="C:\Qt\6.8.0\msvc2022_64"
# 2. Build the project
cmake --build build --config Release./build/Release/filemanager.exeThis project is licensed under the MIT License - see the LICENSE file for details.