Standard documentation appears at http://tcllib.sourceforge.net/doc/ftp.html . Related pages: * [Tcllib] * [Expect] * [VFS] * [Inventory of IPC methods] * [Interacting with the internet] * [ftpd] ---- Here's an example implementation of a "deep" listing, which recurses into subdirectories: proc deep_list {host user pass dir} { set handle [::ftp::Open $host $user $pass] return [deep_list_i $handle $dir] } proc deep_list_i {handle directory} { set result {} foreach item [::ftp::NList $handle $directory] { # lappend result $item } # continue if {([catch {::ftp::Cd $handle $item} ret_val]) || !$ret_val} { lappend result $item } else { set result [concat $result [deep_list_i $handle $item]] ::ftp::Cd $handle $directory } } return $result Use this as set list_of_files [deep_list $host $user $pass $directory] [Category Package] (sub-package of [Tcllib])