Функция CreateDirectory не работает в C: \ Program Files - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь создать каталог с помощью функции CreateDirectory в C: \ Program Files в драйвере разработки. Но, похоже, это не работает так, как я ожидаю. Что не так с моей функцией?

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

int main(int argc, _TCHAR* argv[])
{
    wchar_t *path = L"C:\\Program Files\\log";
    CreateDirectory ( path , NULL);
    return 0;
}

1 Ответ

1 голос
/ 17 апреля 2020

"Я хочу записать файл журнала в C: \ Program Files \ log"

Это неправильное расположение. В эпоху Windows 2000 это был бы стиль, но сейчас это ошибка безопасности. Если вы позвоните GetLastError, вы увидите, что он возвращает 5 (Доступ запрещен).

Вы говорите о "драйвере разработки". Я не знаю, что вы подразумеваете под этим. Возможно, вы говорите о реальных драйверах, и в этом случае ответ будет сложным. Но если вы пишете драйверы, вы бы привыкли к сложным ответам, и вас это не озадачило бы. Итак, я предполагаю, что вы просто пишете программу. В этом случае FOLDERID_ProgramData (вероятно c:\ProgramData, но звоните SHGetKnownFolderPath)

...