![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
VSB |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 23.8.2007 Репутация: 1 Всего: 2 |
Написал функцию для создания вложенных директорий, но не уверен, что правильно.
Посмотрите, пожалуйста
Это сообщение отредактировал(а) VSB - 17.7.2010, 12:25 |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 10 Всего: 146 |
А ведь такая функция есть... http://msdn.microsoft.com/en-us/library/bb...28VS.85%29.aspx
|
|||
|
||||
VSB |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 23.8.2007 Репутация: 1 Всего: 2 |
Я знаю, но во первых
И ещё
Так что не подходит. Нужна поддержка длинных путей (#define MY_MAX_PATH 32768 //REAL NTFS MAX_PATH) и работоспособность на всех NT 5.0+ |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
как-то муторно у вас получилось..
есть boost::filesystem::create_directories() если уж очень хочется поизвращаться, то как-то так:
Это сообщение отредактировал(а) boostcoder - 17.7.2010, 13:13 |
|||
|
||||
VSB |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 23.8.2007 Репутация: 1 Всего: 2 |
НУ, мне нужна поддержку длинных путей (начало вида \\?\c:\...) и вход через wchar_t*
|
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
и? Добавлено через 55 секунд а что это означает? |
|||
|
||||
VSB |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 23.8.2007 Репутация: 1 Всего: 2 |
>а что это означает?
http://msdn.microsoft.com/en-us/library/aa...5).aspx#maxpath Этот префикс (\\?\) при вызове к уникодным версиям некоторых функций (например, CreateDirectoryW) обойти ограничение MAX_PATH в 260 символов Это сообщение отредактировал(а) VSB - 17.7.2010, 13:09 |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
в приведенном мною примере, никаких ограничений быть не может. разве что, ограничение на объем памяти ![]() |
|||
|
||||
VSB |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 23.8.2007 Репутация: 1 Всего: 2 |
Тем не менее, мне нужна полная поддержка wchar_t
Добавлено через 1 минуту и 23 секунды
Вы уверены? А через какие системные вызовы оно работает на самом деле? Это сообщение отредактировал(а) VSB - 17.7.2010, 13:22 |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
дак замени std::string на std::wstring CreateDirectoryW() как я понял из описания CreateDirectoryA(), для поддержки длинных путей, нужно всего лишь сделать префикс "\\?\" в таком случае, функция приобретает вид:
проверил на длине пути 4096. работает. |
|||
|
||||
VSB |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 23.8.2007 Репутация: 1 Всего: 2 |
И тем не менее, я ничего не знаю про boost, итераторы и не шарю в шаблонах, так что когда разберусь - может и запользую.
А пока, просто скажите, правильно ли я написал? |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
VSB |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 23.8.2007 Репутация: 1 Всего: 2 |
Ну извините, что так получилось. Просто если я сейчас начну разбираться с boost и шаблонами, то не закончу этот плагин (для которого функция) в обозримом будущем. А нужно. Но всё равно спасибо. ========= По функции интересует, не будет ли тут ошибок по логике (и ошибок вообще) и будет ли в результате GetLastError() соответствовать таковому от последнего вызова к CreateDirectoryW? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |