Renaming file with FtpWebRequest

2019-04-08 13:59发布

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()); }

2条回答
爱情/是我丢掉的垃圾
2楼-- · 2019-04-08 14:17

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

查看更多
放我归山
3楼-- · 2019-04-08 14:24

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.

查看更多
登录 后发表回答