Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Sumo 05.05.2010 12:30 / 05.05.2010 12:32
У меня есть подобный метод в http://code.google.com/p/parser3-pf/source/browse/trunk/pf/io/pfOS.p@walk[aPath;aVarName;aCode;aSeparator][lFiles] ## Обходит дерево файлов начиная с aPath и выполняет для каждого найденного файла aCode. ## Имя файла c путем попадает в переменную aFileName. ## Файлы сортируются по именам. ## Между вызовами aCode вставляется aSeparator. ^pfAssert:isTrue(def $aVarName)[Не задано имя переменной для имени файлов.] $aPath[^aPath.trim[right;/\]] $lFiles[^file:list[$aPath]] ^lFiles.sort{$lFiles.name}[asc] $result[^if($lFiles && ^aVarName.left(7) eq "caller."){$aSeparator}^lFiles.menu{^process{^$caller.caller.$aVarName^[$aPath/$lFiles.name^]}$aCode^if(-d "$aPath/$lFiles.name"){^walk[$aPath/$lFiles.name;caller.$aVarName]{$aCode}[$aSeparator]}}[$aSeparator]] ^if(^aVarName.left(7) ne "caller."){$caller.$aVarName[]}