
要使用 std::filesystem 库操作文件和目录,你需要确保编译器支持 C++17 及以上标准。这个库提供了简洁直观的接口来处理路径、文件属性、创建/删除目录、遍历目录等常见操作。
#include <filesystem>
namespace fs = std::filesystem;
常用方法包括:
立即学习“C++免费学习笔记(深入)”;
fs::path p = "/home/user"; p /= "docs"; p += ".txt"; // 结果: /home/user/docs.txt
p.parent_path() → 目录部分p.filename() → 文件名(含扩展名)p.stem() → 文件名不含扩展p.extension() → 扩展名(如 .cpp)
p.has_extension()、p.is_absolute() 等
if (fs::exists("test_dir")) { ... }
if (fs::is_directory("test_dir")) { ... }
fs::create_directory("new_folder");(仅创建一级)fs::create_directories("a/b/c");(递归创建多级目录)
fs::remove("file.txt");(删除单个)fs::remove_all("folder");(递归删除整个目录)
示例:打印当前目录下所有条目
for (const auto& entry : fs::directory_iterator(".")) {
if (entry.is_regular_file()) {
std::cout << "[文件] " << entry.path().filename() << "\n";
} else if (entry.is_directory()) {
std::cout << "[目录] " << entry.path().filename() << "\n";
}
}
for (const auto& entry : fs::recursive_directory_iterator("my_project")) {
std::cout << entry.path() << "\n";
}
uintmax_t size = fs::file_size("data.bin");
auto time = fs::last_write_time("config.json");file_time_type,可通过转换输出人类可读时间(需 chrono 配合)
fs::rename("old.txt", "new.txt");
fs::copy("source.txt", "backup.txt");fs::copy_options::overwrite_existing
以上就是c++++怎么使用std::filesystem库操作文件和目录_c++ std::filesystem文件系统操作教程的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号