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