Вы уже используете пакет ftp
, что означает, что у вас установлен tcllib.Хорошо.Это, в свою очередь, означает, что вы также получили пакет fileutil
и можете сделать это:
package require fileutil
# How to do the testing; I'm assuming you only want to upload real files
proc isFile f {
return [file isfile $f]
}
set filesToUpload [fileutil::find $dirToSearchFrom isFile]
Команда fileutil::find
очень похожа на рекурсивную glob
за исключением того, что вы указываете фильтр как команду, а не через опции.
Вы можете вместо этого использовать rsync ;это не команда Tcl, но она очень хорошая и минимизирует объем фактически передаваемых данных.