ftp パッケージftp::Openを使用すると、コマンドで進行状況モニターのコールバックを指定できます。
package require ftp
proc progressMessage {bytesSoFar} {
puts "Transferred $bytesSoFar; looking good..."
}
set handle [ftp::Open $A $user $pass -progress progressMessage]
# Everything after this is just standard for the ftp package
if {$handle < 0} {
error "could not connect"
}
if {![ftp::Get $handle $remoteFile $localFile]} {
ftp::Close $handle
error "could not transfer"
}
ftp::Close $handle
puts "Transfer completed"
これにより、チャンクが転送されるたびにメッセージが出力されます (チャンク サイズは、オプションをftp::Open介して-blocksizeオプションで構成できます。デフォルトでは 4096 です)。最新のネットワークでは、これはおそらく非常に高速にメッセージを書き込みます…</p>