Skip to content

High-performance multithreaded file system analyzer written in modern C++ (std::filesystem, threads, mutexes, condition variables). Scans large directories, reports largest files and file-type statistics.

Notifications You must be signed in to change notification settings

matevz-hvalica11/FileAnalyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

8 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

FileAnalyzer (C++)

Posnetek zaslona 2026-01-29 070840

A high-performance, multithreaded file-system analyzer written in modern C++17. Built to handle massive directories efficiently while providing clean, structured output.

Features

๐Ÿ” Recursive directory scanning via std::filesystem

โšก Multithreaded processing using a worker-thread queue

๐Ÿ” Thread-safe aggregation with mutexes + condition variables

๐Ÿ“Š Reports include:

  • Total file count

  • Total size (in GB)

  • Largest files

  • File extensions ranked by total size

  • Percentage breakdowns

๐Ÿ“ Automatically generates a detailed report file

Example Output

FileAnalyzer starting... Scanning path: C:\Windows\System32

Total files: 42762
Total size: 8.84 GB

Top 50 largest files: 0.28 GB - C:\Windows\System32\Microsoft-Edge-WebView\msedge.dll ...

Build instructions

Requires C++17 or newer.

Example (MSVC):

cl /std:c++17 FileAnalyzer.cpp

Linux / clang / g++ Example

g++ -std=c++17 -O2 FileAnalyzer.cpp -o FileAnalyzer -lpthread

Usage

FileAnalyzer <directory_path>

Example:

FileAnalyzer C:\Windows\System32

Notes

This project was built to handle large real-world directory trees, stress-test multithreading, and serve as a practical example of synchronization, queue-based workload distribution, and modern C++ filesystem APIs.

About

High-performance multithreaded file system analyzer written in modern C++ (std::filesystem, threads, mutexes, condition variables). Scans large directories, reports largest files and file-type statistics.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages