gpt4 book ai didi

c++ - 当同名文件夹已存在时,如何使用 boost 创建新文件夹?

转载 作者:可可西里 更新时间:2023-11-01 11:15:59 27 4
gpt4 key购买 nike

我正在使用 boost::filesystem 创建一个空文件夹(在 Windows 中)。假设我要创建的文件夹的名称是新建文件夹。当我运行以下程序时,会按预期创建一个具有所需名称的新文件夹。当第二次运行程序时,我想创建新文件夹(2)。虽然这是一个不合理的期望,但这就是我想要实现的目标。有人可以指导我吗?

#include <boost/filesystem.hpp>
int main()
{
boost::filesystem::path dstFolder = "New Folder";
boost::filesystem::create_directory(dstFolder);
return 0;
}

预期输出:

Expected output

最佳答案

在不使用任何平台特定的情况下应该很容易完成你想要的......

std::string dstFolder = "New Folder";
std::string path(dstFolder);

/*
* i starts at 2 as that's what you've hinted at in your question
* and ends before 10 because, well, that seems reasonable.
*/
for (int i = 2; boost::filesystem::exists(path) && i < 10; ++i) {
std::stringstream ss;
ss << dstFolder << "(" << i << ")";
path = ss.str();
}

/*
* If all attempted paths exist then bail.
*/
if (boost::filesystem::exists(path))
throw something_appropriate;

/*
* Otherwise create the directory.
*/
boost::filesystem::create_directory(path);

关于c++ - 当同名文件夹已存在时,如何使用 boost 创建新文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45196838/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com