Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
AleXp 23.10.2005 22:30
Из-за этих "нюансиков" с отказами от записи файла нулерой длины и прочими неоднозначнастями:@CopyDirFiles[from;to;rewrite;recursive;delete_after_copy;mask][_tabList;_file;_result;_mask;_method] ################################################################################################### # Копирует файлы и каталоги. Возвращает $TRUE при успешном завершении # копирования и $FALSE - в противном случае. # # bool # CopyDirFiles[ # string from; # string to; # bool rewrite = $TRUE; # bool recursive = $FALSE; # bool delete_after_copy = $FALSE; # string mask = "" # ] $_result($TRUE) ^if(def $mask){ $_mask[^mask.match[[^^0-9A-Za-z.*?_]][g]{}] $_mask[^_mask.replace[^table::create{from to * .* . \. ? .}]] $_tabList[^file:list[$from;$_mask]] }{ $_tabList[^file:list[$from]] } ^try{ ^_tabList.menu{ # ^visualization:object[$_tabList.name;log.htm] ^if(-f "${from}${_tabList.name}"){ $_file[^file::stat[${from}${_tabList.name}]] ^if(^_file.size.int[] == 0){$_method[text]}{$_method[binary]} $_file[^file::load[$_method;${from}${_tabList.name}]] ^if(!(-f "${to}${_tabList.name}" && !$rewrite)){ ^_file.save[$_method;${to}${_tabList.name}] ^if($delete_after_copy){^file:delete[${from}${_tabList.name}]} } }{ ^if($recursive){ ^if(!^CopyDirFiles[${from}${_tabList.name}/;${to}${_tabList.name}/;$rewrite;$recursive;$delete_after_copy;$mask]){ $_result[$FALSE] } } } } }{ $exception.handled(1) # ^visualization:object[$_tabList;log.htm] $_result($FALSE) } $result[$_result] #end @CopyDirFiles[]Абыдна, да?