A high-performance, multithreaded file-system analyzer written in modern C++17. Built to handle massive directories efficiently while providing clean, structured output.
๐ 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
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 ...
Requires C++17 or newer.
Example (MSVC):
cl /std:c++17 FileAnalyzer.cpp
g++ -std=c++17 -O2 FileAnalyzer.cpp -o FileAnalyzer -lpthread
FileAnalyzer <directory_path>
Example:
FileAnalyzer C:\Windows\System32
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.