Переименование файла с помощью FtpWebRequest

При перемещении файла в другое местоположение FTP вы должны использовать RenameTo с новым местоположением FTP.

В этом примере, как вы используете RenameTo для перехода к новому местоположению FTP?

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

person losopha    schedule 25.02.2016    source источник
comment
Этот пост на аналогичную тему может помочь: stackoverflow.com/q/13026170/4072843   -  person Castaglia    schedule 26.02.2016


Ответы (2)


Установите целевой путь к свойству .RenameTo, а не URL:

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

Согласно документации MSDN для свойства FtpWebRequest.RenameTo:

Получает или задает новое имя переименовываемого файла.

Сравните с WebRequest.Createметодом:

Инициализирует новый экземпляр WebRequest для указанной схемы URI.


URL-адрес будет избыточным в RenameTo, так как вы не можете использовать его для «переименования» файла на другой сервер.

person Martin Prikryl    schedule 26.02.2016