我正在尝试在应用程序中创建目录(如果尚不存在),并且正在使用CreateDirectory函数,问题是它没有在创建文件夹:
NULL
我正在以管理员模式执行Visual Studio。
可能是什么问题?
答案 0 :(得分:1)
根据对LPCTSTR
的投射,我的水晶球告诉我对CreateDirectory(folderfile.c_str(), NULL);
的调用不是为您编译的。这是因为Visual Studio默认情况下以 Unicode模式进行编译,因此您需要使用wstring
。
您有一些解决方案:
显式调用CreateDirectoryA
:
string folderfile = "C:\\Screenshots";
CreateDirectoryA(folderfile.c_str(), NULL);
继续使用Unicode字符集并使用wstring
:
wstring folderfile = L"C:\\Screenshots";
CreateDirectory(folderfile.c_str(), NULL);
也不要忘记检查返回值(BOOL
)并调用GetLastError()
(如果它是false
)。这样,您就可以找出为什么呼叫失败。