Pb列出文件,然后使用FTPWebRequest下载

时间:2012-03-07 08:29:32

标签: c# .net c#-4.0 ftp ftpwebrequest

我开发了一种从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();
                }

请注意,当我使用ListDirectoryDe​​tails方法时,它可以工作但我无法正确获取我的文件名。

我该怎么做才能获得这些文件? 将正则表达式应用于ListDirectoryDe​​tails(但它对性能不利)? 是否可以下载所有文件而不知道他们的名字? 或者我应该使用另一个库(在这种情况下,你知道一些免费的.NET 4.0库)?

由于

1 个答案:

答案 0 :(得分:0)

最后,我使用了ListDirectoryDe​​tails方法来获取文件并进行了一些处理:验证文件扩展名并拆分文件的详细信息以仅提取名称。