Renaming file with FtpWebRequest
Asked Answered
M

2

8

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()); }
Michaels answered 25/2, 2016 at 21:17 Comment(1)
This post on a similar topic may help: https://mcmap.net/q/1470261/-how-to-rename-a-file-after-upload/4072843Weismannism
A
7

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.

Asparagus answered 26/2, 2016 at 6:40 Comment(0)
B
-1

A- change it to be

ftpRequest = (FtpWebRequest)WebRequest.Create("ftp://mysite.com//folder1/fileName.ext");

B- ftpRequest.RenameTo = "ftp://mysite.com//folder2/fileName.ext";

Just add (/) before your file folder that allow you to delFile,renFile also downLoadFile

Broads answered 29/7, 2017 at 21:7 Comment(1)
Welcome to SO. Thank you for your answer. Please remember that a lot of users are not native english speakers, so abreviations like delFile will not be so obvious to them.Purplish

© 2022 - 2024 — McMap. All rights reserved.