Sample code for 30+ languages & platforms
Tcl

Get an FTP Listing Entry's Owner

See more FTP Examples

Demonstrates the Chilkat Ftp2.GetOwner method, which returns the owner name or identifier of a cached directory-listing entry. The only argument is a zero-based index. The value is empty when a valid entry has no owner metadata.

Background: Owner information appears in Unix-style listings and is useful for auditing or for deciding whether an operation is likely to be permitted. It is not universally available — some servers and listing formats omit it entirely, and it may be a numeric ID rather than a name — so treat an empty result as "not reported" rather than an error.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

#  Demonstrates the Ftp2.GetOwner method, which returns the owner name or identifier of a cached
#  directory-listing entry.  The only argument is a zero-based index.

set ftp [new_CkFtp2]

CkFtp2_put_Hostname $ftp "ftp.example.com"
CkFtp2_put_Username $ftp "myFtpLogin"

#  Normally you would not hard-code the password in source.  You should instead obtain it
#  from an interactive prompt, environment variable, or a secrets vault.
CkFtp2_put_Password $ftp "myPassword"

set success [CkFtp2_Connect $ftp]
if {$success == 0} then {
    puts [CkFtp2_lastErrorText $ftp]
    delete_CkFtp2 $ftp
    exit
}

set success [CkFtp2_ChangeRemoteDir $ftp "public_html"]
if {$success == 0} then {
    puts [CkFtp2_lastErrorText $ftp]
    delete_CkFtp2 $ftp
    exit
}

#  GetDirCount retrieves the directory listing on the first call and returns the number of
#  entries.  A negative return indicates failure.
set n [CkFtp2_GetDirCount $ftp]
if {$n < 0} then {
    puts [CkFtp2_lastErrorText $ftp]
    delete_CkFtp2 $ftp
    exit
}

for {set i 0} {$i <= [expr $n - 1]} {incr i} {
    set name [CkFtp2_getFilename $ftp $i]

    #  The owner is empty when a valid entry has no owner metadata.
    set owner [CkFtp2_getOwner $ftp $i]
    puts "$owner  $name"
}

set success [CkFtp2_Disconnect $ftp]
if {$success == 0} then {
    puts [CkFtp2_lastErrorText $ftp]
    delete_CkFtp2 $ftp
    exit
}


delete_CkFtp2 $ftp