как правильно указать путь? С++

код:

#include <iostream>
#include <windows.h>
#include <Lmcons.h>
using namespace std;

int main()
{
    TCHAR name[UNLEN + 1];
    DWORD size = UNLEN + 1;

    system(L"C:\\Users\\"__Имя Пользователя__"\\Downloads\\Hell.rar");
}

как вставить имя пользователя вместо Имя Пользователя ?


Ответы (1 шт):

Автор решения: Harry

Вот типичный пример XY-проблемы. Ведь на самом деле вам надо найти не имя пользователя, а путь к папке загрузок, так? Но вы почему-то решили, что эта папка будет лежать именно по такому пути, с именем пользователя в папке Users, да еще и на диске C:... Долго бы вы там искали эту папку у меня на машине :)

Итак, получить папку загрузок можно с помощью функции SHGetKnownFolderPath, примерно так:

#include <iostream>
#include <iomanip>
#include <windows.h>
#include <shlobj_core.h>

using namespace std;

#pragma comment(lib,"Ole32")
#pragma comment(lib,"Shell32")

int main(int argc, char * argv[])
{

    KNOWNFOLDERID id = FOLDERID_Downloads;
    wchar_t * path = nullptr;
    if (S_OK == SHGetKnownFolderPath(id, 0, 0, &path))
    {
        wcout << path;
    }
    CoTaskMemFree(path);
}

P.S. А если хочется получить имя пользователя, то лучше всего использовать еще одну функцию WinAPI — GetUserName...

→ Ссылка