![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
cupper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
Нужно отрыть папку имея относительный путь, что то типа .\aa\bb, где bb это не файл а папка.
Использую следующий код
но вот беда. Папка открывается (дескриптор не равен INVALID_HANDLE_VALUE) только если имя папка указано не в пути а как просто названием папки, типа "bb", само собой тогда открываются только папки в текущей директории. Но мне нужно именно по пути открывать... как сделать ? Заранее спасибо. |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
backslash двойной ?
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
cupper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
если директория: pathToFile = .\Debug\aaa\ipch\test-ee6ba453\test-ee6ba453 директория не открывается иначе: pathToFile = .\Debug\aaa\ipch\test-ee6ba453\test-2434c52c.ipch файл открывается |
|||
|
||||
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 2 Всего: 12 |
а что ты хочешь с директорией сделать?
может быть
http://msdn.microsoft.com/en-us/library/aa...28VS.85%29.aspx http://msdn.microsoft.com/en-us/library/aa...v=VS.85%29.aspx Добавлено через 1 минуту и 30 секунд ЗЫ: вообще лучше бы эту тему перенести в Системное программирование/WinApi |
|||
|
||||
cupper |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
нет, именно открыть уже существующую. Получить дескриптор на нее, да еще и с возможностью записи. А далее всячески не гуманно извращаться с ним. В частности поменять у папки аттрибуты времени создания/модификации. Еще раз вопторюсь, что если при открытии папки указывать непосредственно только ее имя (название, т.е. папка находится в директории из которой запускается приложение) то все прекрастно работает. Если же попробывать открыть туже самую папку но уже через путь (например .\test) то тогда перестает работать |
||||
|
|||||
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 2 Всего: 12 |
посмотри какая ошибка?
http://msdn.microsoft.com/en-us/library/ms...v=VS.85%29.aspx Добавлено через 56 секунд http://msdn.microsoft.com/en-us/library/ms...v=VS.85%29.aspx |
|||
|
||||
cupper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
смотрел, код 2, файл не найден.
|
|||
|
||||
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 2 Всего: 12 |
я сейчас смотрю в эту сторону
|
|||
|
||||
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: 2 Всего: 12 |
ты случайно не через отладчик проверяешь??? если да, то это чревато сменой каталога, который выставляет среда, запускай ехешник сам вот рабочий код. ехешник находится в одном каталоге с папкой test
Добавлено @ 00:30 и как тебе сказал borisbn, используй двойной бекслеш Это сообщение отредактировал(а) null56 - 15.1.2011, 00:32 |
|||
|
||||
cupper |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
и через отладчик, и не через него. Без двойного бекслеша у меняб вообще хрень бы получилась, ибо первый бекслеш служит для отметы специального действия второго. Я когда путь приводил, это непосредственно во время работы т.е. когда строка имеет конечный вид и двойной бекслеш превращается таки в обычный одинарный. Черт, почемуж у меня тогда не работает :( завтро еще раз проверю, на другой машине код. |
||||
|
|||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
получить лучше все-равно полный путь.
Для винды используйте связку GetCurrentDirectory+PathCombine+PathCanonicalize Для nix realpath В винде определить полный ли путь вам передали можно используя поиск по символу ':' (двоеточие) которое указывает на диск (если, конечно, вы не обрабатываете шаред фолдеры). -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
cupper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: 1 Всего: 1 |
ошибка была найдена. Ошибка была в логике, неправильно формировал путь для случая с папками, лишний раз добавлял название папки :(
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |