90% случаев распаковываю в ту же папку, не меняя имя для распакованного.
Хотелось иметь прозрачную тихую распаковку,
т.е. находясь в архиве, нажать кнопку - и тут же оказаться в папке, курсор над тем же элементом.
Результат:
Code: Select all
----------------------------------------------------------------------------------------------------
-- Silent Extract the Archive in the Same Folder v. 1.0. © stealzy
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
-- Не сработает, если на панели есть выделенные элементы.
-- Иначе молча распакует архив
-- под курсором, или в котором находится курсор,
-- в тот же каталог.
-- Eсли курсор стоял:
-- Над архивом - поставит курсор на распакованном объекте.
-- При вкл. опции arclite'a "Перейти в целевой архив" переходит внутрь распак. архива.
-- Внутри архива - войдет в распакованный архив и установит курсор на тот же элемент,
-- на котором он стоял в архиве.
----------------------------------------------------------------------------------------------------
Macro {
area = "Shell"; key = "CtrlShiftF2"; description = "Silent Extract";
action = function()
posRelArc = is_proceed()
if posRelArc ~= "dont proceed" then
while APanel.Plugin do
if (APanel.ItemCount == 2) then
unpackName = Panel.Item(0,2,0)
else
unpackName = nil
end
namePosInArc = APanel.Current
Keys("CtrlPgUp")
end
if unpackName == nil then
unpackName = mf.fsplit(APanel.Current, 0x04)
end
pathBefore = APanel.Path
Keys("ShiftF2 CtrlShift[ Enter") --print(APanel.Path.."\\")
pathAfter = APanel.Path
if pathBefore ~= pathAfter then
Panel.SetPos(0, namePosInArc)
else
itemIdx = Panel.FExist(0, unpackName)
if itemIdx~=0 then
Panel.SetPos(0, unpackName)
if posRelArc == "inside" then
Keys("CtrlPgDn")
Panel.SetPos(0, namePosInArc)
end
end
end
end
end;
}
-----------------------------
function is_proceed()
if APanel.SelCount ~= 0 then
return "dont proceed"
end
if not APanel.Plugin then
if APanel.Folder then
return "dont proceed"
else
Keys("CtrlPgDn")
if APanel.Plugin then
return "outside"
else
return "dont proceed"
end
end
else
return "inside"
end
end
------------------------------
Пока не поддерживает положение курсора вне корня архива.
quiet unpack the archive in the same folder