Использование API окон CreateDirectory в c ++ - PullRequest
9 голосов
/ 19 января 2012

Я только что нашел небольшой фрагмент кода, который позволяет мне создавать каталог с Windows API без использования system (). Единственная проблема заключается в том, что я не могу создать каталог в подкаталоге. Например

#include<windows.h>

int main(){
   CreateDirectory ("C:\\random", NULL);
   return 0;
}

Создать папку с именем random в C.

Но если я сделаю

    #include<windows.h>

int main(){
   CreateDirectory ("C:\\Users\morons", NULL);
   return 0;
}

Создается в папке C che с именем Usersmorons, а не в папке дебилов в Users. Любое предложение?

Ответы [ 2 ]

37 голосов
/ 19 января 2012

Вам понадобится доступ администратора для создания или удаления папки в C: \ Users. Убедитесь, что вы используете .exe от имени администратора, чтобы у вас были эти привилегии. Если этого не сделать, CreateDirectory завершится ошибкой.

Чтобы получить возвращаемую ошибку, используйте GetLastError. Для получения справки об ошибках, которые могут возвращаться, посмотрите в разделе «Возвращаемое значение» на

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363855%28v=vs.85%29.aspx

Кроме того, код, который вы ищете, это

CreateDirectory ("C:\\Users\\morons", NULL);

Как должно быть "\\" перед "идиотами"

21 голосов
/ 19 января 2012

Вам нужен еще один обратный слеш:

CreateDirectory ("C:\\Users\\morons", NULL);
...