Страница 1 из 1
Быстрый и корректный выход из архивов
Добавлено: Вт июн 26, 2012 19:31
LonerD
Регулярно сталкиваюсь с ситуацией, когда после входа в архивы из них становится проблемно выйти в то место, откуда был произведён вход. Это не носит систематический характер, но возникает довольно часто.
Особенно если архивы вложены один в другой и внутри много подпапок.
Забираюсь вглубь архивов, потом начинаю быстро нажимать BackSpace чтобы выбраться на самый верх к первому из архивов. Нажимаю-нажимаю, хлоп - и уже в папке Temp.
По-видимому, Тотал не может переварить чересчур быстрое нажатие клавиши перехода в родительский каталог, и думает "ну вас нафиг, пошли вы в темп".
Я так понимаю, отрегулировать такое заторможенное поведение команды cm_GoToParent может только Гислер (а на то, что он откликнется и реализует быструю навигацию - шансов мало).
Alt+left - не выход - потому как внутри архива могло быть много навигации, а нужно быстро выйти к самому корневому архиву без лишних ожиданий и нажатий.
Потому вопрос - есть ли другие решения? Команды, настройки, скрипты...
Добавлено: Ср июн 27, 2012 11:42
Flasher
LonerD писал(а):хлоп - и уже в папке Temp
Не могу воспроизвести.
Команд таких нет, скриптов тоже. Сделать скрипт - не проблема, но тут оффтоп.
А поскольку ты любитель мыши, то тебе не должно составлять труда кликать на родительскую папку головного архива в пути строки заголовка панели.
Добавлено: Ср июн 27, 2012 13:50
alexey65536
Забираюсь вглубь архивов, потом начинаю быстро нажимать BackSpace чтобы выбраться на самый верх к первому из архивов. Нажимаю-нажимаю, хлоп - и уже в папке Temp.
Периодически натыкаюсь на это, но делать нечего:) Приходится терпеть:)
Другие симптомы: при быстром выходе с помощью Backspace из "архива в архиве" можно оказаться в корне диска, содержащего временную папку, а курсор будет указывать как раз на нее. Т.е., перестарался и вышел на самый верх. Но в папке %TEMP% побывать успел, однозначно.
Или еще вариант - находясь в архиве, который внутри другого архива, нажмем Ctrl+\, а потом Alt+Влево - и окажемся в папке %TEMP%...
Добавлено: Ср июн 27, 2012 18:34
Tol!k
LonerD писал(а):хлоп - и уже в папке Temp
Подтверждаю
Добавлено: Ср июн 27, 2012 20:43
LonerD
А поскольку ты любитель мыши, то тебе не должно составлять труда кликать на родительскую папку головного архива в пути строки заголовка панели.
Традиции ломаются, я хоткеи активно осваиваю, как встроенные, так и своих уже несколько десятков назначено.
Родительская папка присутствует только если архив один, а если несколько архивов вложенны один в другой - то там уже в качестве родительской папки прописан путь к Temp.
Одно из решений - cm_DirectoryHistory и дальше вручную искать нужный файл.
Второе решение (будешь матюкаться от реализации).
Создаём две команды.
Код: Выделить всё
[em_RememberPgDone]
cmd=%commander_path%\Plugins\exe\TCFS2\TCFS2.exe
param=/ef tcm(2018) tcm(2003)
menu=Remember archive name before PageDone
[em_ReturnPgDone]
cmd=%commander_path%\Plugins\exe\TCIMG\TCIMG.exe "tcimg=$cm2912" "clpget" "keybd=10~~{Enter}" "tcimg=$cm2002"
menu=Return to root archive file (перейти по пути из архива и подняться уровнем выше).
Первую назначаем например на Alt+PgDn, вторую - на Alt+PgUp.
В самый первый архив входим через Alt+PgDn, когда нужно вернуться - нажимаем Alt+PgDn. Работает, но минусы очевидны (необходимость входить в архив по специальному хоткею, сбой при изменении буфера).
Сделать скрипт - не проблема, но тут оффтоп.
Тогда давай сделай там, где не оффтоп.

Я так представляю - скрипт должен просмотреть историю посещённых каталого, определить тот, в пути которого нет папки %Temp% (это будет наш корневой архив), а затем выйти из него.
Добавлено: Чт июн 28, 2012 00:24
CaptainFlint
LonerD писал(а):Забираюсь вглубь архивов, потом начинаю быстро нажимать BackSpace чтобы выбраться на самый верх к первому из архивов. Нажимаю-нажимаю, хлоп - и уже в папке Temp.
Проблема неоднократно поднималась на оф. форуме. Загвоздка в том, что вложенный архив распаковывается в TEMP, и Тотал просто переходит в этот архив, в результате оказываясь именно в TEMP'е. При возврате отрабатывает код переброски в исходное местоположение, но недостаточно быстро, так что повторное нажатие Backspace может обработаться раньше и вывести пользователя в TEMP. Причём раньше это было форменным бедствием, потом Гислер добавил какую-то блокировку, которая позволила реже случаться этой коллизии, но, к сожалению, иногда даже её пробивает.
Увы, решить эту проблему Гислер пока не имеет возможности, равно как и улучшить работу с вложенными архивами в целом (например, чтобы переход в TEMP был скрытым от пользователя, а в заголовке панели отображался бы путь вида c:\file.zip\subarch.rar\...): слишком много придётся переделывать, т.к. многие функции завязаны именно на текущее поведение.
Добавлено: Чт июн 28, 2012 13:44
alexey65536
При возврате отрабатывает код переброски в исходное местоположение, но недостаточно быстро, так что повторное нажатие Backspace может обработаться раньше и вывести пользователя в TEMP.
Получается, "переброска" осуществляется асинхронно? А какая в этом логика?
Добавлено: Чт июн 28, 2012 15:45
CaptainFlint
alexey65536
Мы же не знаем структуры кода и внутренней логики. Может, там всё оказалось настолько негибко, что "правильная" реализация оказалась архитектурно невозможной, и пришлось прикручивать этот возврат в исходный архив костылями, т.к. альтернативой было бы переписывание половины Тотала…