c++ - 创建文件夹结构

标签 c++ visual-studio winapi

我正在尝试创建一个文件夹结构,例如这样的:

c:\game\user\user_profile\...

但是当我使用 CreateDirectory() 函数时,它似乎并没有按照我的意愿执行。我想我没有正确使用它,我真的很感激能快速解释一下该功能的实际作用。这是我的代码:

void CreateDir(const char* path) {

    if (!CreateDirectory(path, NULL))
    {
        cout << "Fail";
        return;
    }
    else
        cout << "Success?";
}

int main()
{
    CreateDir("c:\\game\\user\\user_profile");
    system("pause");
}

似乎该函数允许我创建一个文件夹(game),然后允许我在其中添加 1 个文件夹(user - 我假设这是因为它知道 game 在哪里),但是如果我尝试将超过 1 个文件夹包含到目录中,它似乎会失败。

我希望能够使用此功能创建文件夹结构,但它似乎不起作用。

我再次确定我在这里错误地使用了这个函数,有人可以建议吗?

最佳答案

如果您使用的是 C++ 17 文件系统 库是标准库的一部分,那么您可以像这样使用它:

#include <filesystem>

std::filesystem::create_directories("c:\\game\\user\\user_profile");

如果您使用的是 g++,则需要添加“-std=c++17”和“-lstdc++fs”标志。

关于c++ - 创建文件夹结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58583920/

相关文章:

c++ - 如何在 C++ 中将 std::string 值传递给 RegSetValueEx()

c++ - 每个顶点的概率

c++ - 使用 sse 的快速紧凑寄存器

c++ - CMake:从 ExternalProject 链接共享 C++ 对象生成具有相对路径而非绝对路径的二进制文件

c++ - (C++)如何在Window程序中使用虚函数?

delphi - 为什么使用 FILE_FLAG_NO_BUFFERING 打开文件时写入失败?

C++ OpenMP : nested loops where the inner iterator depends on the outer one

visual-studio - 编写开口尖括号时Visual Studio 2013崩溃

asp.net - 将 "debug"和 "release"文件夹与 ASP.NET Web 应用程序一起使用

visual-studio - 解决方案资源管理器有时不会折叠文件夹,仅切换三角形图标