2015-08-24 131 views
1

我想用CreateDirectory函数创建一个目录。但它似乎并没有像我期望的那样工作。我的功能有什么问题?CreateDirectory函数不起作用

#include "stdafx.h" 
#include<windows.h> 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    wchar_t *path = L"C:\\Users\TempFolder"; 
    CreateDirectory (path , NULL); 
    return 0; 
} 
+2

您没有检查错误。这是Win32 101.请重复我后,我保证在调用Win32 API函数时检查错误,我保证在调用Win32 API函数时检查错误,我保证在调用Win32 API函数时检查错误。 ... –

+1

[为什么字符串中的反斜杠必须在C++中转义?](http://stackoverflow.com/questions/13986708/why-must-backslashes-in-string-literals-be-escaped-in -c) – IInspectable

+2

我保证在调用Win32 API函数时检查错误,我保证在调用Win32 API函数时检查错误,我保证在调用Win32 API函数时检查错误;):D非常感谢 – Jimmy

回答

2

你需要有一个反斜杠在那里:

L"C:\\Users\\TempFolder" 

,并且确保运行您的程序(.exe)为管理。您需要具有管理员权限才能在C:\ Users中创建文件夹。

+2

其实,只是停止在该目录中创建文件夹,它不是你的,系统拥有它 –

+1

由于此问题被标记为[tag:C++],另一个选项是使用raw [字符串文字](http://en.cppreference。 com/w/cpp/language/string_literal):'LR“C:\ windows \ temp \ TempFolder“'。 – IInspectable

+0

@IInspectable:在C++ 11中添加了原始字符串文字。 –