我正在尝试在我的应用程序中创建一个目录(如果尚不存在)并且我正在使用 CreateDirectory 函数,问题是它没有创建文件夹:
string folderfile = "C:\\Screenshots";
CreateDirectory(LPCTSTR(folderfile.c_str()), NULL);
我正在以管理员模式执行 Visual Studio。
可能是什么问题?
最佳答案
根据对 LPCTSTR
的转换,我的 Crystal 球告诉我对 CreateDirectory(folderfile.c_str(), NULL);
的调用没有为您编译。这是因为 Visual Studio 默认情况下以 Unicode 模式 编译,您需要使用 wstring
。
你有几个解决方案:
- 将项目字符集切换为ANSI模式:
项目属性 -> 常规 -> 字符集 -> 使用多字节字符集 显式调用
CreateDirectoryA
:string folderfile = "C:\\Screenshots";
CreateDirectoryA(folderfile.c_str(), NULL);
继续使用 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/