Файл загрузки FtpWebRequest

Следующий код предназначается для получения файла через FTP. Однако я получаю ошибку с ним.

serverPath = "ftp://x.x.x.x/tmp/myfile.txt";

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverPath);

request.KeepAlive = true;
request.UsePassive = true;
request.UseBinary = true;

request.Method = WebRequestMethods.Ftp.DownloadFile;                
request.Credentials = new NetworkCredential(username, password);

// Read the file from the server & write to destination                
using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) // Error here
using (Stream responseStream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(responseStream))            
using (StreamWriter destination = new StreamWriter(destinationFile))
{
    destination.Write(reader.ReadToEnd());
    destination.Flush();
}

Ошибка:

Удаленный сервер возвратил ошибку: (550) недоступный Файл (например, файл, не найденный, никакой доступ)

Файл определенно существует на удаленной машине, и я могу выполнить этого ftp вручную (т.е. у Меня есть полномочия). Кто-либо может сказать мне, почему я мог бы получать эту ошибку?

35
задан Martin Prikryl 28 June 2017 в 05:50
поделиться

1 ответ

Этот параграф из справочника по классу FptWebRequest может быть вам интересен:

URI может быть относительным или абсолютным. Если URI имеет вид "ftp://contoso.com/%2fpath" (%2f - это экранированное '/'), то URI является абсолютный, а текущий каталог /path. Однако, если URI имеет вид вида "ftp://contoso.com/path", то сначала .NET Framework входит в систему FTP сервер (используя имя пользователя и пароль, заданные свойством Credentials ), затем текущий каталог устанавливается в /path.

23
ответ дан 27 November 2019 в 06:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: