Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FileManager (Qt6 + C++ + WebEngine)

A professional, high-performance Windows file manager built with C++ and Qt6, featuring a modern web-based UI bridged to a robust native backend.

🚀 Overview

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.

✨ Key Features

📂 Core Functionality

  • 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.

🔌 Windows Integration

  • 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.

🏷️ Advanced Tools

  • 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.

🛠️ Technical Architecture

The application is split into three main layers:

  1. Backend (C++): Handles direct OS interactions, threading, and file metadata.
  2. Web Bridge (fm::WebBridge): Exposes native objects to JavaScript via QWebChannel, enabling direct, asynchronous calls from the frontend.
  3. 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
Loading

🏗️ Build & Setup

Prerequisites

  • Visual Studio 2022 (MSVC 64-bit)
  • CMake 3.21+
  • Qt6 SDK (Required components: Widgets, Concurrent, WebEngineWidgets, WebChannel)

Compilation

# 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

Execution

./build/Release/filemanager.exe

📄 License

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

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages