.net http代理后面的Ftp列表目录
我正在尝试使用FtpWebRequest类列出ftp地址中的文件.net http代理后面的Ftp列表目录,.net,ftp,.net,Ftp,我正在尝试使用FtpWebRequest类列出ftp地址中的文件 private IEnumerable<ResourceInfo> EnumerateResources(Stream stream) { StreamReader reader = new StreamReader(stream); string line = null; while ((line = reader.ReadLine()) != null
private IEnumerable<ResourceInfo> EnumerateResources(Stream stream)
{
StreamReader reader = new StreamReader(stream);
string line = null;
while ((line = reader.ReadLine()) != null)
{
yield return new ResourceInfo(this, line);
}
}
public override IReadOnlyList<ResourceInfo> GetResources()
{
FtpWebRequest req = (FtpWebRequest)WebRequest.Create(Url);
req.Method = WebRequestMethods.Ftp.ListDirectory;
req.Credentials = Credentials;
using (var resp = (FtpWebResponse)req.GetResponse())
{
using (var stream = resp.GetResponseStream())
{
return EnumerateResources(stream).ToReadOnly();
}
}
}
私有IEnumerable枚举资源(流)
{
StreamReader=新的StreamReader(流);
字符串行=null;
而((line=reader.ReadLine())!=null)
{
返回新的ResourceInfo(此,行);
}
}
公共覆盖IReadOnlyList GetResources()
{
FtpWebRequest请求=(FtpWebRequest)WebRequest.Create(Url);
req.Method=WebRequestMethods.Ftp.ListDirectory;
请求凭证=凭证;
使用(var resp=(FtpWebResponse)req.GetResponse())
{
使用(var stream=resp.GetResponseStream())
{
返回EnumerateResources(stream.ToReadOnly();
}
}
}
这在大多数情况下都可以。
但是当我在HTTP代理后面时,响应流的内容包含一个HTML页面
它列出了a标记中的文件。有没有什么优雅的方法来处理这个问题,或者我应该试着手工解析HTML。您可能应该考虑使用。但是如果您提供的格式准确无误,也许可以制作一些更简单的东西。我已经开发了一种从代理生成的HTML中提取数据的方法。我只是想知道有没有更优雅的方法