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

c++
1258
2024/12/6 3:22:46
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在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()方法。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c++中using的含义是什么