Страница 3 из 4
Добавлено: Пн июн 01, 2020 22:20
Flasher
WindR
Так а при чём тут имя папки тогда? Относительные пути я и не рассматривал. В каких случаях это может быть полезным? Я догадываюсь, но тем не менее.
Добавлено: Вт июн 02, 2020 10:25
WindR
Flasher
Git, например, выводит относительные пути:
Код: Выделить всё
D:\vcpkg>git fsck
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/0e/8554af67c79f9d321308fdd695b30ee84c1e86
error: 0e8554af67c79f9d321308fdd695b30ee84c1e86: object corrupt or missing: .git/objects/0e/8554af67c79f9d321308fdd695b30ee84c1e86
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of .git/objects/56/52d7bd7ea732eeed400fe56ffccd0e02498afb
error: 5652d7bd7ea732eeed400fe56ffccd0e02498afb: object corrupt or missing: .git/objects/56/52d7bd7ea732eeed400fe56ffccd0e02498afb
Добавлено: Вт июн 02, 2020 11:06
Flasher
WindR
Понятно. Туда же xml/html и т. п. Обновил.
Добавлено: Вт июн 02, 2020 11:28
WindR
Flasher
Вышеуказанные пути не распознаёт, например:
Код: Выделить всё
.git/objects/0e/8554af67c79f9d321308fdd695b30ee84c1e86
Добавлено: Вт июн 02, 2020 11:33
Flasher
WindR
Прекрасно распознаёт. Папка .git должна быть в списке активной панели.
Добавлено: Вт июн 02, 2020 11:44
WindR
Flasher
Не распознаёт путь когда подпапка из пути отсутствует, например, в .git/objects/0e/8554af67c79f9d321308fdd695b30ee84c1e86 подпапка 0e и её содержимое удалено. Т.е. по .git/objects/ переходит, а .git/objects/0e уже не распознаёт.
Добавлено: Вт июн 02, 2020 11:46
Flasher
WindR
Так это логично. Так и должно быть. Как можно распознать то, чего нет?

Добавлено: Вт июн 02, 2020 13:23
WindR
Flasher
Если указан параметр или несуществующий ключ реестра, произойдёт переход в существующий в путевой цепи куст.
А скрипт просто отвергает такой путь.
Добавлено: Вт июн 02, 2020 13:25
Flasher
WindR
Какой такой? То, что приведено выше, реестра не касается.
Добавлено: Вт июн 02, 2020 13:30
WindR
Flasher
Было бы логично перейти в последнюю существующую по пути папку.
Добавлено: Вт июн 02, 2020 13:44
Flasher
WindR
Не совсем логично. Я изначально рассматривал этот вариант, но он сразу отпал по той простой причине, что папка в списке может оказаться единственной, то бишь корнем диска. Переходить в корень диска или, скажем, в папку первого уровня из большой цепочки, находясь уже в некой цепочке нужного диска, с потерей фокуса в подавляющем большинстве ситуаций нецелесообразно, это только создаст проблему в юзабильности. В случае относительных путей мы рассматриваем не относительный путь, а весь с корнем. В итоге мы можем попасть совсем не туда, куда надо. Я специально
сделал умный вариант с переходом в рабочую папку, т. к. обратность одиночного слэша будет служить маркером для рассмотрения потенциальной разветвлённости синтаксиса в компонентах путей цепи. Банальный поиск вышестоящей папки эту логику тут же поломает. Это касается и самого сообщения о несоответствии, т. к. в случае наличия хотя бы буквы диска оно перестанет иметь силу, ибо пользователь и так осознаёт, есть ли у него эта буква на текущий момент.
С реестром же ситуация иная, т. к. там очень часто приходится дописывать отсутствующие ключи, чтобы добиться нужного функционала.
Добавлено: Вт июн 02, 2020 14:08
WindR
Flasher
Но куда-то же перейти всё равно нужно, а скрипт в данный момент полностью отбрасывает частично неполный путь.
Добавлено: Вт июн 02, 2020 14:10
Flasher
WindR
В смысле отбрасывает? Результат поведения какой? Появление сообщения. Так?
Вообще, конечно, можно рассмотреть относительные пути отдельно от полных. Посмотрю, ощутимо ли это скажется на скорости, позже дам знать.
Добавлено: Вт июн 02, 2020 17:06
WindR
Flasher
Да.
Было бы здорово.
Добавлено: Вт июн 02, 2020 21:45
Flasher
WindR
В общем, добавил проверку. На TCKB ещё раньше, потом отойти пришлось.
Вместо условия теперь второй параметр для длинных путей.