Sample code for 30+ languages & platforms
Visual FoxPro

Rename or Move a Remote FTP File

See more FTP Examples

Demonstrates the Chilkat Ftp2.RenameRemoteFile method, which renames or moves a remote file or directory using the FTP RNFR/RNTO sequence. The first argument is the existing path and the second is the new path.

Background: Rename and move are the same RNFR/RNTO operation: changing only the final path component renames in place, while including directory components in the new path relocates the item within the same server. It is a metadata operation, so even a large file moves instantly — but both paths must be on the same server, and moving onto an existing target may fail depending on the server.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loFtp

lnSuccess = 0

*  Demonstrates the Ftp2.RenameRemoteFile method, which renames or moves a remote file or
*  directory using the FTP RNFR/RNTO sequence.  The 1st argument is the existing path and the 2nd
*  is the new path.

loFtp = CreateObject('Chilkat.Ftp2')

loFtp.Hostname = "ftp.example.com"
loFtp.Username = "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.
loFtp.Password = "myPassword"

lnSuccess = loFtp.Connect()
IF (lnSuccess = 0) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    CANCEL
ENDIF

lnSuccess = loFtp.ChangeRemoteDir("public_html")
IF (lnSuccess = 0) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    CANCEL
ENDIF

*  Rename a file in place.
lnSuccess = loFtp.RenameRemoteFile("report.pdf","report_final.pdf")
IF (lnSuccess = 0) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    CANCEL
ENDIF

*  Include directory components in the new path to move the item within the same server.
lnSuccess = loFtp.RenameRemoteFile("report_final.pdf","archive/report_final.pdf")
IF (lnSuccess = 0) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    CANCEL
ENDIF

? "Renamed and moved."

lnSuccess = loFtp.Disconnect()
IF (lnSuccess = 0) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    CANCEL
ENDIF

RELEASE loFtp