Renaming file with FtpWebRequest

13,596

Set a target path to .RenameTo property, not URL:

ftpRequest.RenameTo = "/folder2/fileName.ext";
        

As per MSDN documentation for FtpWebRequest.RenameTo property:

Gets or sets the new name of a file being renamed.

Compare to WebRequest.Create method:

Initializes a new WebRequest instance for the specified URI scheme.


The URL would be redundant in RenameTo, as you cannot use it to "rename" the file to another server.

Share:
13,596
losopha
Author by

losopha

Updated on June 05, 2022

Comments

  • losopha
    losopha almost 2 years

    When moving a file to another FTP location you must use RenameTo with the new FTP location.

    In this example how do you use RenameTo to move to the new FTP location?

    FtpWebRequest ftpRequest = null;
    FtpWebResponse ftpResponse = null;
    try
    {
        ftpRequest = (FtpWebRequest)WebRequest.Create("ftp://mysite.com/folder1/fileName.ext");
        ftpRequest.Credentials = new NetworkCredential("user", "pass");
        ftpRequest.UseBinary = true;
        ftpRequest.UsePassive = true;
        ftpRequest.KeepAlive = true;
        ftpRequest.Method = WebRequestMethods.Ftp.Rename;
        ftpRequest.RenameTo = "ftp://mysite.com/folder2/fileName.ext";
        ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
        ftpResponse.Close();
        ftpRequest = null;
    }
    catch (Exception ex) { Label1.Text = (ex.ToString()); }