|
Название | SubDirList |
Имя файла (*.txt) | SubDirList.txt |
Описание | Сосавляет список всех директорий, дочерних к заданной |
Автор | Вахмурка |
Параметры |
"%P%N" "v" или "f" или "b" (см. комментарии) |
Вызываемые плагины | file, vec, osd |
Иконка | |
Версия | 1.2 |
Дата обновления | 30.08.2006 |
args Path local List = file.listfiles(Path, 2) local Counter = line(List, 0) local Temp, j, One, Pos = 0 if(not Counter) quit(0) v = vec.create(1, 1) if(v <= 0) do messagebox("ok error", "Vector not created", "VEC plugin error") quit(0) endif for(j = 1; j <= Counter; j++) One = line(List, j) if(file.isfolder(One)) do v[Pos] = One Pos++ endif endfor if(not Pos) quit(0) Pos = 0 for(1) Temp = Pos ++ " / " ++ vec.length(v) osd.show(Temp, "INFINITE", "30", "Arial", "-1", "255 000 000") List = file.listfiles(v[Pos], 2) Counter = line(List, 0) if(not Counter) do Pos++ if(Pos >= vec.length(v)) break else for(j = 1; j <= Counter; j++) One = line(List, j) if(file.isfolder(One)) v[vec.length(v)] = One endfor Pos++ if(Pos >= vec.length(v)) break endif endfor osd.hide() vec.sort(v) Counter = vec.capacity(v) if(arg(2) == "v") quit(Counter) local Hand = file.open(Path ++ "\_subdirs.lst", "w") if(Hand <= 0) do messagebox("ok error", "File not opened", "FILE plugin error") quit endif for(j = 0; j < Counter; j++) file.writeline(Hand, v[j]) endfor if(arg(2) == "f") vec.destroy(v) file.close(Hand) quit(Counter)
Скрипт составляет список директорий, дочерних к заданной первым параметром. Второй параметр определяет, куда помещается результат:
"v" - только в вектор;
"f" - только в файл;
"b" - и туда и сюда.
Помещать результат в вектор имеет смысл при вызове SubDirList из другого скрипта, например:
VecSize = runfile.SubDirList("d:\Winnt\", "v")
Тогда в вызвавшем скрипте будет доступен глобальный вектор v размера VecSize, содержащий в алфавитном порядке все директории, дочерние к d:\Winnt.
Если скрипт вызван с параметром "f" или "b", то в заданной директории будет создан файл _subdirs.lst, содержащий тот же список.
На главную | Все о Total Commander | PowerPro | PowerPro & Total Commander |