C#中FTP编程 远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中FTP编程 远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)相关的知识,希望对你有一定的参考价值。

C#语言,设计从服务器下载文件

FtpWebRequest reqFTP;

//filePath是文件创建后所在的完整路径
//fileName是所要创建的文件名
FileStream outputStream = new FileStream(filePath + "\\" + fileName, FileMode.Create);
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + "192.168.0.1:9595" + "/AA/BB/" + "A.txt"));

reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();----------------报错
Stream ftpStream = response.GetResponseStream();
long cl = response.ContentLength;
int bufferSize = 2048;
int readCount;
byte[] buffer = new byte[bufferSize];

readCount = ftpStream.Read(buffer, 0, bufferSize);
while (readCount > 0)

outputStream.Write(buffer, 0, readCount);
readCount = ftpStream.Read(buffer, 0, bufferSize);


ftpStream.Close();
outputStream.Close();
response.Close();

以上程序是网络编程书籍中的源代码按理不会错,下载文件会抱 “远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)” 错误。但是用迅雷工具中FTP工具可以下载,用自己电脑输入FTP服务器也可以使用。网上搜了还是解决不了

你的文件路径在ftp中已经存在,再次创建则会报这个错误 。 参考技术A 直接debug看看,在哪行代码出错 参考技术B FileStream outputStream = new FileStream(filePath + "\\" + fileName, FileMode.Create);
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + "192.168.0.1:9595" + "/AA/BB/" + "A.txt"));

这两个FTP的路径要转义的,也就是前面要加@,没有加的话自然路径不对,试试:
FileStream outputStream = new FileStream(@filePath + "\\" + fileName, FileMode.Create);
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(@"ftp://" + "192.168.0.1:9595" + "/AA/BB/" + "A.txt"));

以上是关于C#中FTP编程 远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)的主要内容,如果未能解决你的问题,请参考以下文章

ftp应用程序出错:"远程服务器返回错误:(550)文件不可用(例如,未找到文件,无法访问文件)"

FTP上传文件提示550错误原因分析。

检查 FTPS 上是不是存在文件,错误 550

fft 远程服务器返回错误 550返回码

zend studio 远程FTP调试wordpress报错550

Ftp 错误代码 550,如何解决