最近在做项目的时候需要操作ftp进行文件的上传下载,但在调用using (var response = (FtpWebResponse)FtpWebRequest.GetResponse())的时候总是出现"远程服务器返回错误:(550)文件不可用(例如,未找到文件,无法访问文件)"的异常。在网上也没有找到好的解决方案,于是自己研究了下给解决了,分享给大家,希望对大家能有所帮助。
异常信息
这种情况是因为FTP设置的默认目录引发的,以我现在的项目为例,在程序中我要访问的路径为 ftp://192.168.0.225/2007/35/0037/00001/1.jpg 这个路径,但服务器上设置的默认路径为 E:pmserverFTPServerFTPSERVER ,
我们打开相应的ftp目录看下,这个目录下面并没有我要访问的2007这个文件夹
那2007这个文件夹在什么位置呢?可以看到,2007这个文件夹是在ftpserver的上一级目录,而ftp设置的默认目录为ftpserver里,也就是说在程序中默认打开的目录对应的物理地址是E:pmserverFTPServerFTPSERVER,您也看到了,E:pmserverFTPServerFTPSERVER目录下根本就没有2007的文件夹,所以就会抛出异常"远程服务器返回错误:(550)文件不可用(例如,未找到文件,无法访问文件)"。
解决方法其实很简单,设置下服务ftp的默认路径即可 (IIS配置的ftp也是一样的)
在通过程序进行访问,可以看到已经获得到了文件流信息。