CreateDirectory不会创建目录VS2017 C ++

时间:2019-01-30 10:39:14

标签: c++ visual-studio directory

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

NULL

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

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

根据对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)。这样,您就可以找出为什么呼叫失败。