SisterDel

Название SisterDel
Имя файла (*.txt) SisterDel.txt
Описание Удаляет файлы из сестринских директорий
Автор Вахмурка
Параметры ("%P", "%O", "%E", "0|1|2", "n|e|b")
(см. комментарий)
Вызываемые плагины file, vec, miscplugin
Иконка
Версия 1.0
Дата обновления 08.11.2005
local Path = arg(1)
local Name = arg(2)
local Ext = arg(3)
local Temp = Path ++ Name ++ "." ++ Ext
;Sub_ParsePath - имя скрипта ParsePath;
local Parent = runfile.Subs\Sub_ParsePath(Temp, -1)
;SubDirList - имя скрипта SubDirList;
local Size = runfile.SubDirList(Parent)
local i, Victim
local List = "Are you sure to delete the following files:\n"
local mpDlgText
local mpDlgCaption = "Sister Delete"
local mpIcon = "QUESTION"

if(arg(5) == "n") do
	Victim = Name ++ ".*"
elseif(arg(5) == "e") do
	Victim = "*." ++ Ext
elseif(arg(5) == "b") do
	Victim = Name ++ "." ++ Ext
endif

for(i = 0; i < Size; i = i + 1)
	v[i] = v[i] ++ "\" ++ Victim
	if(file.validpath(v[i]) == "0") do
		v[i] = ""
	else
		if(arg(4) == "1")
			List = List ++ "\n" ++ v[i]
	endif
endfor

if(arg(4) == "1") do
	mpDlgText = List
	if(miscplugin.messagebox(1, "&Yes", "&No") == "&No")
		quit
endif

Path = 0

for(i = 0; i < Size; i = i + 1)
	if(v[i] != "") do
		if(arg(4) == "2") do
			mpDlgText = "Delete " ++ v[i] ++ "?"
			if(miscplugin.messagebox(1, "&Yes", "&No") == "&No")
				jump NextFile
		endif
		file.delete(v[i])
		Path = Path + 1
	endif
@NextFile
endfor

local mpIcon = "INFORMATION"
mpDlgText = Path ++ " files are deleted"
miscplugin.messagebox(1, "OK")

vec.destroy(v)
vec.unload
miscplugin.unload

Комментарии:

Под сестринской директорией понимается имеющая с текущей общую родительскую. Например, для c:\Windows сестринской директорией будет, в частности, c:\Program Files.

Идея скрипта появилась у меня тогда, когда я разбирался со скачанными из Интернета файлами. Некоторые программы закачки создают множество директорий, в каждую из которых записывают файл-отчет типа error.log. Как избавиться от них штатными средствами?

  1. Нажать Alt+F7;
  2. Ввести имя (а оно может быть длинным). Либо, чтобы не ошибиться, скопировать имя в буфер, а потом вставить... Тоже долго!
  3. Нажать Start search;
  4. Когда поиск будет закончен, нажать Feed to listbox;
  5. Потом выделить (проще всего нажать *);
  6. И, наконец, нажать Del.

Остается пустая вкладка, которую, скорее всего, придется закрывать. Вывод - слишком длинная последовательность действий для такой рутинной процедуры.

С первыми тремя параметрами все ясно - путь, имя, расширение текущего файла, подлежащего удалению среди прочих. Четвертый параметр задает выдачу запроса на удаление:

Пятый параметр определяет маску файла на удаление:

Я использую только "b", а остальные возможности добавил для универсальности. Например, задавать "е" имеет смысл, установив курсор на файле с расширением типа gid, tmp, ~tx, и пр.


На главную Все о Total Commander PowerPro PowerPro & Total Commander