c++

c++ mkdir函数如何进行路径转换

小樊
81
2024-12-06 03:07:54
栏目: 编程语言

在C++中,你可以使用std::filesystem库中的path类来进行路径转换和创建目录

#include <iostream>
#include <filesystem>

int main() {
    // 定义源路径和目标路径
    std::string source_path = "C:/Users/username/Documents/source_folder";
    std::string target_path = "C:/Users/username/Documents/target_folder/target_subfolder";

    // 创建目标路径的父目录
    std::filesystem::path target_parent(target_path).parent_path();

    // 检查父目录是否存在,如果不存在则创建
    if (!std::filesystem::exists(target_parent)) {
        if (std::filesystem::create_directories(target_parent)) {
            std::cout << "成功创建目录: " << target_parent << std::endl;
        } else {
            std::cerr << "无法创建目录: " << target_parent << std::endl;
            return 1;
        }
    }

    // 在目标父目录下创建子目录
    std::string target_subfolder = "target_subfolder";
    std::filesystem::path target_subfolder_path = target_parent / target_subfolder;

    if (!std::filesystem::exists(target_subfolder_path)) {
        if (std::filesystem::create_directory(target_subfolder_path)) {
            std::cout << "成功创建目录: " << target_subfolder_path << std::endl;
        } else {
            std::cerr << "无法创建目录: " << target_subfolder_path << std::endl;
            return 1;
        }
    } else {
        std::cout << "目录已存在: " << target_subfolder_path << std::endl;
    }

    return 0;
}

这个示例中,我们首先定义了源路径和目标路径。然后,我们使用parent_path()方法获取目标路径的父目录,并使用exists()create_directories()方法检查并创建父目录(如果不存在)。接下来,我们在目标父目录下创建子目录,同样使用exists()create_directory()方法。

0
看了该问题的人还看了