我有代码什么获取某个FTP目录的内容。在我测试过的一些服务器上,它工作正常。获取FTP目录内容的问题,如果它是空的
但是在一个服务器上,当我们尝试获得响应时,此方法会引发异常。
public static List<string> ListDirectory(string dirPath, string ftpUser, string ftpPassword)
{
List<string> res = new List<string>();
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(dirPath);
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential(ftpUser, ftpPassword);
request.KeepAlive = false;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
while (!reader.EndOfStream)
{
res.Add(reader.ReadLine());
}
reader.Close();
response.Close();
return res;
}
在保持部分我有这样的事情
catch (WebException e)
{
FtpWebResponse response = (FtpWebResponse)e.Response;
/*in my case response.Status = ActionNotTakenFileUnavailableOrBusy*/
....
}
它的工作原理之前,但现在当文件夹为空失败。如果有什么有效的话。我可以用TotalCommander看到这个目录。
任何想法为什么?
你被允许使用一个外部库,而不是内置类? – Steve 2013-04-30 14:48:39
是的,我允许。但它需要很多改变。 – Vitalii 2013-04-30 15:07:42
好的,我将使用CodePlex提供的免费System.Net.FtpClient添加一个示例。告诉我你是否可以使用它 – Steve 2013-04-30 15:20:28