Sample code for 30+ languages & platforms
Visual FoxPro

Get a Remote File's Owner

See more SFTP Examples

Demonstrates the Chilkat SFtp.GetFileOwner method, which returns a remote file's owner. The arguments are the remote path (or handle), whether symbolic links are followed, and whether the first argument is a handle.

Background: Ownership determines who may read, write, or change a file under Unix permission rules, so reading the owner is useful for auditing or for deciding whether an operation will be allowed. Note that a server may report the owner as a numeric UID rather than a name if it cannot resolve the account, and that ownership is a Unix concept — servers on other platforms may return an empty or synthetic value.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loSftp
LOCAL lnPort
LOCAL lcPassword
LOCAL lnBFollowLinks
LOCAL lnBIsHandle
LOCAL lcOwner

lnSuccess = 0

*  Demonstrates the SFtp.GetFileOwner method, which returns a remote file's owner.  The 1st
*  argument is the remote path (or handle), the 2nd selects whether symbolic links are followed,
*  and the 3rd indicates whether the 1st argument is a handle.

loSftp = CreateObject('Chilkat.SFtp')

*  Connect, authenticate, and initialize the SFTP subsystem.
lnPort = 22
lnSuccess = loSftp.Connect("sftp.example.com",lnPort)
IF (lnSuccess = 0) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    CANCEL
ENDIF

*  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.
lcPassword = "mySshPassword"

lnSuccess = loSftp.AuthenticatePw("mySshLogin",lcPassword)
IF (lnSuccess = 0) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    CANCEL
ENDIF

lnSuccess = loSftp.InitializeSftp()
IF (lnSuccess = 0) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    CANCEL
ENDIF

*  The 2nd argument (bFollowLinks) selects whether a symbolic link is followed to its target.
*  The 3rd argument (bIsHandle) is 0 here because the 1st argument is a path, not an
*  open handle.
lnBFollowLinks = 1
lnBIsHandle = 0

lcOwner = loSftp.GetFileOwner("subdir/report.pdf",lnBFollowLinks,lnBIsHandle)
IF (loSftp.LastMethodSuccess = 0) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    CANCEL
ENDIF

? "Owner: " + lcOwner

loSftp.Disconnect()

RELEASE loSftp