我开发了一种从Windows ftp服务器下载文件的方法,它运行正常。但是当我尝试使用它从linux服务器下载文件时,我遇到了FTPWebRequest方法的问题:WebRequestMethods.Ftp.ListDirectory:我发现没有文件存在的异常。
以下是我尝试获取文件列表的代码:
FtpWebRequest reqFTP = (FtpWebRequest)WebRequest.Create("ftp://blabla.cnvt.com/files/");
reqFTP.Credentials = new NetworkCredential("userId", "password");
reqFTP.KeepAlive = false;
reqFTP.UseBinary = true;
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
reqFTP.UsePassive = false;
reqFTP.Proxy = null;
response = (FtpWebResponse)reqFTP.GetResponse();
Stream responseStream = response.GetResponseStream();
reader = new StreamReader(responseStream);
string line = reader.ReadLine();
while (line != null)
{
result.Append(line);
result.Append("\n");
line = reader.ReadLine();
}
请注意,当我使用ListDirectoryDetails方法时,它可以工作但我无法正确获取我的文件名。
我该怎么做才能获得这些文件? 将正则表达式应用于ListDirectoryDetails(但它对性能不利)? 是否可以下载所有文件而不知道他们的名字? 或者我应该使用另一个库(在这种情况下,你知道一些免费的.NET 4.0库)?
由于
答案 0 :(得分:0)
最后,我使用了ListDirectoryDetails方法来获取文件并进行了一些处理:验证文件扩展名并拆分文件的详细信息以仅提取名称。