C++创建删除文件夹方法详解
C++中创建和删除文件夹推荐使用C++17的std::filesystem,通过create_directory/create_directories创建目录,remove/remove_all删除目录,跨平台且安全。
C++中创建和删除文件夹推荐使用C++17的std::filesystem,通过create_directory/create_directories创建目录,remove/remove_all删除目录,跨平台且安全。

在C++中创建和删除文件夹,标准库本身不直接提供跨平台的文件夹操作函数。但可以通过结合系统调用或使用C++17引入的 std::filesystem 来实现。以下是几种常用方法。
使用 C++17 std::filesystem(推荐)
从C++17开始,std::filesystem 提供了跨平台的文件系统操作接口,包括创建和删除目录。
需要包含头文件:
使用 create_directory 或 create_directories 函数。
- create_directory(path):创建单层目录,父目录必须已存在。
- create_directories(path):递归创建多层目录,自动创建缺失的父目录。
#include删除文件夹:#include int main() { std::filesystem::path dir{"test_folder/subdir"}; // 递归创建多层目录 if (std::filesystem::create_directories(dir)) { std::cout << "目录创建成功\n"; } else { std::cout << "目录可能已存在或创建失败\n"; } return 0; }
使用 remove 或 remove_all。
- remove(path):删除空目录或文件。
- remove_all(path):递归删除整个目录树(包括所有子文件和子目录)。
#include#include int main() { std::filesystem::path dir{"test_folder"}; // 删除整个目录及其内容 std::uintmax_t count = std::filesystem::remove_all(dir); std::cout << "删除了 " << count << " 个条目\n"; return 0; }
Windows 平台 API 方法
在 Windows 下,可以使用 Windows.h 中的 API。
创建文件夹:使用 CreateDirectoryA()。
#include删除文件夹:int main() { CreateDirectoryA("C:\\my_folder", NULL); return 0; }
使用 RemoveDirectoryA(),只能删除空目录。
RemoveDirectoryA("C:\\my_folder");
Linux/Unix 系统调用
在 Linux 下可使用 mkdir() 和 rmdir(),需包含
#include删除空目录:#include int main() { mkdir("my_folder", 0755); // 权限设置 return 0; }
rmdir("my_folder");
注意:若目录非空,需先删除内部文件,或使用 system("rm -rf my_folder")(不推荐用于生产)。
跨平台兼容性建议
为保证代码可移植性,优先使用 C++17 的 std::filesystem。编译时需启用 C++17 支持:
- GCC/Clang: 添加 -std=c++17 编译选项
- Visual Studio: 默认支持(VS2017 及以上)
基本上就这些。使用 filesystem 是现代 C++ 推荐做法,简洁且安全。旧项目中可根据平台选择系统调用。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















