| Новости | 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[]Абыдна, да?