
在C++中创建和删除文件夹,标准库本身不直接提供跨平台的文件夹操作函数。但可以通过结合系统调用或使用C++17引入的 std::filesystem 来实现。以下是几种常用方法。
从C++17开始,std::filesystem 提供了跨平台的文件系统操作接口,包括创建和删除目录。
需要包含头文件:<filesystem>,并使用命名空间 std::filesystem。
创建文件夹:使用 create_directory 或 create_directories 函数。
立即学习“C++免费学习笔记(深入)”;
#include <iostream>
#include <filesystem>
int main() {
std::filesystem::path dir{"test_folder/subdir"};
// 递归创建多层目录
if (std::filesystem::create_directories(dir)) {
std::cout << "目录创建成功
";
} else {
std::cout << "目录可能已存在或创建失败
";
}
return 0;
}
使用 remove 或 remove_all。
#include <iostream>
#include <filesystem>
int main() {
std::filesystem::path dir{"test_folder"};
// 删除整个目录及其内容
std::uintmax_t count = std::filesystem::remove_all(dir);
std::cout << "删除了 " << count << " 个条目
";
return 0;
}
在 Windows 下,可以使用 Windows.h 中的 API。
创建文件夹:使用 CreateDirectoryA()。
#include <windows.h>
int main() {
CreateDirectoryA("C:\my_folder", NULL);
return 0;
}
使用 RemoveDirectoryA(),只能删除空目录。
RemoveDirectoryA("C:\my_folder");
在 Linux 下可使用 mkdir() 和 rmdir(),需包含 <sys/stat.h> 和 <sys/types.h>。
创建目录:
#include <sys/stat.h>
#include <sys/types.h>
int main() {
mkdir("my_folder", 0755); // 权限设置
return 0;
}
rmdir("my_folder");
注意:若目录非空,需先删除内部文件,或使用 system("rm -rf my_folder")(不推荐用于生产)。
为保证代码可移植性,优先使用 C++17 的 std::filesystem。编译时需启用 C++17 支持:
基本上就这些。使用 filesystem 是现代 C++ 推荐做法,简洁且安全。旧项目中可根据平台选择系统调用。
以上就是c++++如何创建和删除文件夹_c++ 文件夹创建与删除方法的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号