2014-07-05 12 views
-2

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

TCHAR szPath[MAX_PATH]; 
char buffer[]="My\Folder"; 
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 Settings\Administrator\Application Data\My\Folder"); 
} 

Нужен ли мне PathAppend? Это правильный код, а если нет, то что мне нужно исправить?

+3

С одной стороны, вам нужно избежать этих обратные косые черты; *все они. – WhozCraig

+0

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

+3

В-третьих, если вы собираетесь потратить все усилия на вычисление 'szPath', то позор, который вы никогда не используете. –

ответ

2

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

WCHAR szPath[MAX_PATH]; 

if (SUCCEEDED(SHGetFolderPathW(NULL, 
          CSIDL_APPDATA|CSIDL_FLAG_CREATE, 
          NULL, 
          0, 
          szPath))) 
{ 
    PathAppendW(szPath, L"My\\Folder"); 
    SHCreateDirectory(0, szPath); 
} 
Смежные вопросы