A lightweight, portable C library for reading directories and files across POSIX and Windows systems.
TinyDir is a lightweight, portable C library for reading directories and enumerating files across different operating systems. It wraps platform-specific APIs like dirent for POSIX and FindFirstFile for Windows, providing a consistent and easy-to-use interface for file system operations in C projects.
C developers who need a simple, cross-platform solution for directory traversal and file enumeration without external dependencies or complex setup.
Developers choose TinyDir for its minimalism, portability, and ease of integration—it's a single-header library that works on both POSIX and Windows with a straightforward API, making it ideal for embedded systems, games, or tools where lightweight file system access is needed.
Lightweight, portable and easy to integrate C directory and file reader
Abstracts dirent for POSIX and FindFirstFile for Windows with a unified API, making it easy to write portable C code for both systems.
Single-header ANSI C (C90) implementation with no external dependencies, ideal for embedded systems or projects minimizing bloat.
Simple API with functions like tinydir_open and tinydir_readfile, as shown in the example code, requiring minimal setup.
Supports Windows Unicode when UNICODE and _UNICODE are defined, ensuring compatibility with international file names.
Windows paths are limited to 260 characters and overall path/filename sizes are constrained, which can fail in deep directory structures.
Has a known bug where reading a directory with changing content can cause race conditions, as admitted in issue #13.
Only provides basic directory reading; lacks advanced features like recursive traversal, file filtering, or metadata access beyond is_dir.
stb single-file public domain libraries for C/C++
A modern formatting library
Extremely fast non-cryptographic hash algorithm
List of single-file C/C++ libraries, with emphasis on clause-less licenses.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.