我正在写一小段代码,遇到了些困难。这个应用程序每天运行一次,需要从FTP服务器下载所有文件。我的问题是:
虽然从理论上讲,列出目录内容的例程运行良好,检查所有文件并将它们保存到列表中,但实际上有两个错误:
- 列表以HTML格式呈现
- 我只需要文件名和扩展名
代码
string localPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
List<string> FtpListing = new List<string>();
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(Properties.Settings.Default.FtpUrl);
//request.Proxy = GlobalProxySelection.GetEmptyWebProxy();
request.Credentials = new NetworkCredential(Properties.Settings.Default.FtpUsername, Properties.Settings.Default.FtpPassword);
request.Method = WebRequestMethods.Ftp.ListDirectory;
using (StreamReader streamReader = new StreamReader(request.GetResponse().GetResponseStream()))
{
string fileName = streamReader.ReadLine();
while (fileName != null)
{
FtpListing.Add(fileName);
fileName = streamReader.ReadLine();
}
}
没有代理的情况下,返回html;当取消代理语句时,我得到了一个"远程服务器返回错误:(550)文件不可用(例如,文件未找到,无访问权限)"的错误。 我在哪里错了? /编辑:这是列表的截图,所有文件应该被列出,但是却保存了完整的html文件。