The C++17 standard introduced the filesystem library, which provides facilities for performing operations on file systems and their components, such as paths, regular files, and directories. This library makes it easier to navigate and manage files and directories directly through C++ code.
To use the filesystem library in C++17, you need to include the header #include <filesystem>
. You can then use functions and types defined in the std::filesystem namespace, such as std::filesystem::path, std::filesystem::exists, std::filesystem::create_directory, and many more.
#include <iostream>
#include <filesystem>
int main() {
std::filesystem::path dir{"example_directory"};
// Create a directory
if (std::filesystem::create_directory(dir)) {
std::cout << "Directory created: " << dir << std::endl;
} else {
std::cout << "Directory already exists or could not be created." << std::endl;
}
// Check if the directory exists
if (std::filesystem::exists(dir)) {
std::cout << "Directory exists: " << dir << std::endl;
}
return 0;
}
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?