Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > как создать с помощью SHGetFolderPath папку?


Автор: MrSteelHummer 28.7.2007, 09:56
Необходимо, если ето возможно, создать папку именно при помощи этой функции. 

Автор: Alexeis 28.7.2007, 10:22
В справке написано "Takes the CSIDL of a folder and returns the pathname." Т.е. по CSIDL-у возвращает путь, т.е. строку. 

Автор: MrSteelHummer 28.7.2007, 11:56
Там есть флаг CSIDL_FLAG_CREATE, зачем он тогда нужен?

Автор: dumb 28.7.2007, 13:04
Цитата(msdn)
You can force creation of a folder with SHGetFolderPath by combining the folder's CSIDL with CSIDL_FLAG_CREATE.
для этого и нужен. только ты ведь понимаешь, что функция не предназначена для создания произвольных папок?

Автор: MrSteelHummer 28.7.2007, 13:06
те даже с этим флагом, никак?

Добавлено через 1 минуту и 30 секунд
я не понимаю что за комбинацию они там упоминают в справке...by combining the folder's CSIDL with CSIDL_FLAG_CREATE

Автор: dumb 28.7.2007, 13:18
Код

  SHGetFolderPath(nil, CSIDL_APPDATA or CSIDL_FLAG_CREATE, ...

Автор: MrSteelHummer 28.7.2007, 14:54
а куда передовать путь папки которую хочу создать?

Автор: dumb 28.7.2007, 17:43
Цитата(dumb @  28.7.2007,  13:04 Найти цитируемый пост)
функция не предназначена для создания произвольных папок
читать умеем? эта функция предназначена для получения путей к стандартным виндовым папкам, таким как "Мои документы", Program Files, профиль пользователя, итд. а флаг CSIDL_FLAG_CREATE служит для создания этих самых папок, если они вдруг не существует еще.

предлагаю варианты:
1. искать файлы функцией ExitWindowsEx
2. Выводить в окно текст функцией CreateFile
...

Добавлено через 1 минуту и 5 секунд
Цитата(MrSteelHummer @  28.7.2007,  14:54 Найти цитируемый пост)
а куда передовать путь папки которую хочу создать? 
"передОвай" в CreateDir и не парься.

Автор: MrSteelHummer 29.7.2007, 07:03
ясно, спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)