Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > открыть папку по относительному пути |
Автор: cupper 14.1.2011, 11:12 | ||
Нужно отрыть папку имея относительный путь, что то типа .\aa\bb, где bb это не файл а папка. Использую следующий код
но вот беда. Папка открывается (дескриптор не равен INVALID_HANDLE_VALUE) только если имя папка указано не в пути а как просто названием папки, типа "bb", само собой тогда открываются только папки в текущей директории. Но мне нужно именно по пути открывать... как сделать ? Заранее спасибо. |
Автор: borisbn 14.1.2011, 13:49 |
backslash двойной ? |
Автор: cupper 14.1.2011, 14:10 | ||
если директория: pathToFile = .\Debug\aaa\ipch\test-ee6ba453\test-ee6ba453 директория не открывается иначе: pathToFile = .\Debug\aaa\ipch\test-ee6ba453\test-2434c52c.ipch файл открывается |
Автор: null56 14.1.2011, 18:21 | ||
а что ты хочешь с директорией сделать? может быть
http://msdn.microsoft.com/en-us/library/aa363855%28VS.85%29.aspx http://msdn.microsoft.com/en-us/library/aa363950%28v=VS.85%29.aspx Добавлено через 1 минуту и 30 секунд ЗЫ: вообще лучше бы эту тему перенести в Системное программирование/WinApi |
Автор: cupper 14.1.2011, 23:31 | ||||
нет, именно открыть уже существующую. Получить дескриптор на нее, да еще и с возможностью записи. А далее всячески не гуманно извращаться с ним. В частности поменять у папки аттрибуты времени создания/модификации. Еще раз вопторюсь, что если при открытии папки указывать непосредственно только ее имя (название, т.е. папка находится в директории из которой запускается приложение) то все прекрастно работает. Если же попробывать открыть туже самую папку но уже через путь (например .\test) то тогда перестает работать |
Автор: null56 14.1.2011, 23:35 |
посмотри какая ошибка? http://msdn.microsoft.com/en-us/library/ms679360%28v=VS.85%29.aspx Добавлено через 56 секунд http://msdn.microsoft.com/en-us/library/ms681381%28v=VS.85%29.aspx |
Автор: cupper 14.1.2011, 23:57 |
смотрел, код 2, файл не найден. |
Автор: null56 15.1.2011, 00:00 | ||
я сейчас смотрю в эту сторону
|
Автор: cupper 15.1.2011, 01:19 | ||||
и через отладчик, и не через него. Без двойного бекслеша у меняб вообще хрень бы получилась, ибо первый бекслеш служит для отметы специального действия второго. Я когда путь приводил, это непосредственно во время работы т.е. когда строка имеет конечный вид и двойной бекслеш превращается таки в обычный одинарный. Черт, почемуж у меня тогда не работает :( завтро еще раз проверю, на другой машине код. |
Автор: jonie 15.1.2011, 12:06 |
получить лучше все-равно полный путь. Для винды используйте связку GetCurrentDirectory+PathCombine+PathCanonicalize Для nix realpath В винде определить полный ли путь вам передали можно используя поиск по символу ':' (двоеточие) которое указывает на диск (если, конечно, вы не обрабатываете шаред фолдеры). |
Автор: cupper 15.1.2011, 16:53 |
ошибка была найдена. Ошибка была в логике, неправильно формировал путь для случая с папками, лишний раз добавлял название папки :( |