创建目录不创建目录 VS2017 c++

CreateDirectory doesn't create a directory VS2017 c++

本文关键字:创建目录 c++ VS2017      更新时间:2023-10-16

我正在尝试在我的应用程序中创建一个目录(如果尚不存在),并且我正在使用 CreateDirectory 函数,问题是它没有创建文件夹:

string folderfile = "C:\Screenshots";
CreateDirectory(LPCTSTR(folderfile.c_str()), NULL);

我正在管理员模式下执行Visual Studio。

可能是什么问题?

根据LPCTSTR我的水晶球的演员阵容告诉我,对CreateDirectory(folderfile.c_str(), NULL);的调用不是为你编译的。这是因为Visual Studio默认以Unicode模式编译,您需要使用wstring

您有几种解决方案:

  1. 将项目字符集切换到 ANSI 模式
    项目属性 -> 常规 ->字符集 -> 使用多字节字符集
  2. 显式调用CreateDirectoryA


    string folderfile = "C:\Screenshots"; CreateDirectoryA(folderfile.c_str(), NULL);

  3. 继续使用 Unicode 字符集并使用 wstring


    wstring folderfile = L"C:\Screenshots"; CreateDirectory(folderfile.c_str(), NULL);

另外不要忘记检查返回值(BOOL)并调用GetLastError()如果它是false。这样,您就可以找出呼叫失败的原因