Создать каталог с помощью средств win32

#c #winapi

#c #winapi

Вопрос:

Нужна помощь с созданием каталога с помощью shlwapi.dll и shfolder.dll .

 TCHAR szPath[MAX_PATH];
char buffer[]="MyFolder";
char *lpStr;
lpStr=buffer;

if(SUCCEEDED(SHGetFolderPath(NULL, 
                             CSIDL_APPDATA|CSIDL_FLAG_CREATE,
                             NULL,
                             0,
                             szPath)))
{
    PathAppend(szPath, lpStr);
    SHCreateDirectory(0, L"C:Documents and SettingsAdministratorApplication DataMyFolder");
}
  

Мне действительно нужен PathAppend? Правильный ли это код, и если нет, то что мне нужно создать?

Комментарии:

1. Во-первых, вам нужно избежать этих обратных слешей; всех из них.

2. С другой стороны, орфографическая ошибка в «Настройках» была бы еще одной действительно веской причиной.

3. В-третьих, если вы собираетесь потратить все эти усилия на вычисления szPath , жаль, что вы никогда этим не пользуетесь.

Ответ №1:

Вы должны делать это вместо:

 WCHAR szPath[MAX_PATH];

if (SUCCEEDED(SHGetFolderPathW(NULL, 
                             CSIDL_APPDATA|CSIDL_FLAG_CREATE,
                             NULL,
                             0,
                             szPath)))
{
    PathAppendW(szPath, L"My\Folder");
    SHCreateDirectory(0, szPath);
}