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

标签 c++ visual-studio directory

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

string folderfile = "C:\\Screenshots";

CreateDirectory(LPCTSTR(folderfile.c_str()), NULL);

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

可能是什么问题?

最佳答案

根据对 LPCTSTR 的转换,我的 Crystal 球告诉我对 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) 并在返回值 false 时调用 GetLastError()。这样您就可以找出为什么调用失败。

关于c++ - CreateDirectory 不创建目录 VS2017 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54438610/

相关文章:

git - git 中的子模块库以最小化冗余

c++ - 将数据列读入 vector

regex - 如何使用正则表达式验证带有可选百分比符号的小数?

c++ - c 中 undefined reference ...我做错了什么?

c++ - Visual Studio C++ 位域结构大小问题

C 编程数据结构用户输入无法初始化结构类型 Visual Studio

data-structures - 用于目录结构的数据结构?

java - 在外部存储中创建文件夹

c++ - 表示简单电路时的最佳数据结构 - C++

c++ - 带有实现的纯虚函数