详解C++ 创建文件夹的四种方式

详解C++ 创建文件夹的四种方式

在C++中创建一个文件夹一般有4种方式,分别是:

  1. 通过 Win32 API 函数 CreateDirectory 创建文件夹。
  2. 利用C++11标准库中 std::filesystemcreate_directory 函数创建文件夹。
  3. 调用C++标准库中的 mkdir 函数创建文件夹。
  4. 使用操作系统的命令行窗口执行 mkdir 命令创建文件夹。

下面我们将详细的讲解这4种方式。

1. 通过 Win32 API 函数 CreateDirectory 创建文件夹

代码示例:

#include <Windows.h>
#include <iostream>

int main() {
    LPCWSTR path = L"C:\\example_folder";
    if (CreateDirectoryW(path, NULL)) {
        std::cout << "Folder created successfully!" << std::endl;
    } else {
        std::cout << "Failed to create folder..." << std::endl;
        std::cout << "Error code: " << GetLastError() << std::endl;
    }
    return 0;
}

其中 CreateDirectoryW 函数的第一个参数为要创建的文件夹的完整路径,第二个参数为可选的安全性属性,默认设置为 NULL

2. 利用C++11标准库中 std::filesystemcreate_directory 函数创建文件夹

代码示例:

#include <iostream>
#include <filesystem>

namespace fs = std::filesystem;

int main() {
    std::string folder_path = "example_folder";
    fs::path path(folder_path);
    try {
        if (!fs::exists(path)) {
            fs::create_directory(path);
            std::cout << "Folder created successfully!" << std::endl;
        } else {
            std::cout << "Folder already exists..." << std::endl;
        }
    } catch (fs::filesystem_error& e) {
        std::cout << e.what() << std::endl;
    }
    return 0;
}

其中,我们通过命名空间别名 fs 管理文件系统操作,使用 fs::path 存储路径信息。create_directory 函数可以直接在路径中创建文件夹。

3. 调用C++标准库中的 mkdir 函数创建文件夹

代码示例:

#include <iostream>
#include <sys/stat.h>

int main() {
    std::string folder_path = "example_folder";
    if (mkdir(folder_path.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) == 0) {
        std::cout << "Folder created successfully!" << std::endl;
    } else {
        std::cout << "Failed to create folder..." << std::endl;
    }
    return 0;
}

其中,mkdir 函数的第一个参数应该是要创建的文件夹的完整路径,第二个参数设置文件夹的访问权限,本示例中设置了其可读、可写、可执行。

4. 使用操作系统的命令行窗口执行 mkdir 命令创建文件夹

代码示例:

#include <iostream>

int main() {
    std::string folder_path = "example_folder";
    std::string cmd = "mkdir " + folder_path;
    if (system(cmd.c_str()) == 0) {
        std::cout << "Folder created successfully!" << std::endl;
    } else {
        std::cout << "Failed to create folder..." << std::endl;
    }
    return 0;
}

其中,使用 system 函数可以让操作系统执行命令窗口命令,本示例中执行了 mkdir 命令来创建文件夹。

综上所述,我们可以使用4种方法来创建文件夹。其中,第1种方法使用 Win32 API 函数,较为底层,但是对于 Windows 系统有较好的兼容性。第2种方法可以在任何平台上使用,代码中使用了 C++11 标准库中的 std::filesystem 库,代码简洁易懂。第3种方法使用 C++ 标准库中的 mkdir 函数,相对简单直接,但是对于权限控制不方便。第4种方法可以使用任何操作系统上的命令行窗口命令,但是较为底层,控制不方便,同时也有安全性问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解C++ 创建文件夹的四种方式 - Python技术站

(1)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • win10下oracle 11g安装图文教程

    Win10下Oracle 11g安装图文教程 前言 Oracle 11g是一款十分流行的数据库管理系统,但是其在Win10系统下的安装却是一件比较困难的事情。在本教程中,我们将为大家提供一个详尽的安装攻略,帮助大家顺利安装Oracle 11g。 步骤一:下载Oracle 11g 首先,我们需要在Oracle官网上下载Oracle 11g的安装包。在下载过程中…

    other 2023年6月27日
    00
  • c++错误:在’}’标记之前预期的primary-expression

    C++错误:在’}’标记之前预期的primary-expression攻略 在C++编程中,我们可能会遇到错误:在’}’标记之前预期的primary-expression。这个错误通常是由于语法错误或拼写错误起的。本攻略将介绍如何解决这个错误,并提供两个示例。 原因 在C++编程中,错误:’}’标记之前预期的primary-expression通常是由于以下…

    other 2023年5月9日
    00
  • Shell脚本实现从文件夹中递归复制文件

    想要实现从一个文件夹中递归复制(包括文件夹和子文件夹中的文件)文件,可以通过编写Shell脚本来实现。具体的实现攻略如下: 1. 创建Shell脚本文件 在Linux环境中,右键点击文件夹空白处,选择“打开终端”,在终端中输入以下命令来创建一个新的Shell脚本文件: touch myscript.sh 其中,myscript.sh 是你新建的Shell脚本…

    other 2023年6月27日
    00
  • Laravel模糊查询区分大小写的实例

    Laravel模糊查询区分大小写的实例攻略 在Laravel中,模糊查询是一种常见的需求,但默认情况下,Laravel的模糊查询是不区分大小写的。如果你需要进行区分大小写的模糊查询,可以按照以下步骤进行设置。 步骤一:创建数据库表 首先,你需要创建一个数据库表来存储你的数据。假设我们创建了一个名为users的表,其中包含一个名为name的列。 CREATE …

    other 2023年8月17日
    00
  • kindeditor图片批量上传

    以下是“KindEditor图片批量上传”的完整攻略,包含两个示例说明: KindEditor图片批量上传的概念 KindEditor是一款基于的富文本编辑器,持图片批量上传功能。图片批量上传是指在编辑器中一次性上传多张图片将其插入编辑器中。 KindEditor图片批量上传的使用方法 以下是KindEditor图片批量上传的使用方法: 引入KindEdit…

    other 2023年5月9日
    00
  • linux操作系统文档

    Linux操作系统文档 作为一种开源操作系统,Linux系统已经成为了服务器领域的主流。相对于其他操作系统而言,Linux拥有更好的稳定性、可靠性和安全性。同时,Linux还拥有较多的命令行应用程序,让用户可以高效地完成各种操作。 Linux系统初学者指南 如果你是一个Linux系统初学者,那么以下几个步骤可以帮助你更好地掌握Linux系统: 安装Linux…

    其他 2023年3月28日
    00
  • MacOS系统下Unity启动黑屏的解决方法

    MacOS系统下Unity启动黑屏的解决方法攻略 如果你在MacOS系统下安装了Unity,启动时出现了黑屏,可能会让你十分困扰。本文将为你提供解决办法,帮助你顺利启动Unity。 前置条件 MacOS系统环境 安装了Unity软件 解决方法 1. 更改显卡驱动设置 打开MacOS的系统设置。 进入显示器设置。 在左侧选择“显示器”选项卡。 勾选“低分辨率”…

    other 2023年6月27日
    00
  • vue项目配置env的方法步骤

    Vue项目配置.env文件主要是为了在开发和生产阶段,动态地管理不同的环境变量。比如开发人员在开发阶段,需要连接到本地开发的服务器,而在生产环境下则需要连接到生产服务器。 下面是Vue项目配置.env的步骤: 在项目根目录下,创建.env文件和.env.development文件和.env.production文件。 在.env.development和.e…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部