趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
C++ 创建与删除文件夹的方法指南
  • 常用
  • 百度
  • google
  • 站内搜索

科技

C++ 创建与删除文件夹的方法指南

  • 更新日期:2025-11-27
  • 查看次数:3772

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

c++如何创建和删除文件夹_c++ 文件夹创建与删除方法

在C++中创建和删除文件夹,标准库本身不直接提供跨平台的文件夹操作函数。但可以通过结合系统调用或使用C++17引入的 std::filesystem 来实现。以下是几种常用方法。

使用 C++17 std::filesystem(推荐)

从C++17开始,std::filesystem 提供了跨平台的文件系统操作接口,包括创建和删除目录。

需要包含头文件:<filesystem>,并使用命名空间 std::filesystem

创建文件夹:

使用 create_directorycreate_directories 函数。

  • create_directory(path):创建单层目录,父目录必须已存在。
  • create_directories(path):递归创建多层目录,自动创建缺失的父目录。
示例代码:

#include <iostream>
#include <filesystem>

int main() {
    std::filesystem::path dir{"test_folder/subdir"};

    // 递归创建多层目录
    if (std::filesystem::create_directories(dir)) {
        std::cout << "目录创建成功\n";
    } else {
        std::cout << "目录可能已存在或创建失败\n";
    }

    return 0;
}

删除文件夹:

使用 removeremove_all

  • remove(path):删除空目录或文件。
  • remove_all(path):递归删除整个目录树(包括所有子文件和子目录)。
示例代码:

#include <iostream>
#include <filesystem>

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 <windows.h>

int main() {
    CreateDirectoryA("C:\\my_folder", NULL);
    return 0;
}

删除文件夹:

使用 RemoveDirectoryA(),只能删除空目录。

RemoveDirectoryA("C:\\my_folder");

Linux/Unix 系统调用

在 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 支持:

  • GCC/Clang: 添加 -std=c++17 编译选项
  • Visual Studio: 默认支持(VS2017 及以上)

基本上就这些。使用 filesystem 是现代 C++ 推荐做法,简洁且安全。旧项目中可根据平台选择系统调用。

本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网
趣科技 机圈观察员 茄考网 茄录网 海印网 雷鹃网 鹃朝网 互联网观察员 评测官 海印网