FTp获取文件列表报错

sdfgrtyu 2018-07-19 10:34:02
private string[] GetAllList(string url)
{
List<string> list = new List<string>();
FtpWebRequest req = (FtpWebRequest)WebRequest.Create(new Uri(url));
req.Credentials = new NetworkCredential(ftpPassword, ftpPassword);
req.Method = WebRequestMethods.Ftp.ListDirectory;
req.UseBinary = true;
req.UsePassive = false;
try
{
using (FtpWebResponse res = (FtpWebResponse)req.GetResponse())
{
using (StreamReader sr = new StreamReader(res.GetResponseStream()))
{
string s;
while ((s = sr.ReadLine()) != null)
{
list.Add(s);
}
}
}
}
catch (Exception ex)
{
throw (ex);
}
return list.ToArray();
}

使用上面的方法到
s = sr.ReadLine()

就报错提示主机强制关闭了一个现有的连接,用网页输入路径就能获取到目录下的文件列表,这个问题怎么解决,
...全文
356 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdfgrtyu 2018-07-25
  • 打赏
  • 举报
回复
引用 15 楼 xomix 的回复:
发栈信息吧
try 一下,然后看ex.StackTrace吧,你有试着自己建一个ftp测试能否获取目录吗?这样就能看到服务端信息了。

在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
在 System.Net.FtpDataStream.Read(Byte[] buffer, Int32 offset, Int32 size)
在 System.IO.StreamReader.ReadBuffer()
在 System.IO.StreamReader.ReadLine()
在 SeismicSocket.frmFtpDown.GetAllList(String url)
sdfgrtyu 2018-07-20
  • 打赏
  • 举报
回复
引用 13 楼 xomix 的回复:
发栈信息吧,这一句完全没有参考意义,你服务器端也没有对应的日志比对。
你让大家猜为啥你的服务器关闭你?一个管理员没事干就不停的右键断开你都可以实现这个功能。

服务器我看不见啊,但是用tcp工具和网页都能看到列表,
  • 打赏
  • 举报
回复
发栈信息吧,这一句完全没有参考意义,你服务器端也没有对应的日志比对。
你让大家猜为啥你的服务器关闭你?一个管理员没事干就不停的右键断开你都可以实现这个功能。
sdfgrtyu 2018-07-20
  • 打赏
  • 举报
回复
无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。
sdfgrtyu 2018-07-20
  • 打赏
  • 举报
回复
引用 10 楼 xomix 的回复:
[quote=引用 8 楼 u010941149 的回复:]
[quote=引用 7 楼 xomix 的回复:]
跟你说了10次了你用户密码放了两次,你找一个用户名密码一致的来就能打开了


如果是用户名和密码错误,根本不可能执行到 while ((s = sr.ReadLine()) != null)
我上面的是参考,实际写的时候用的是正确的用户名和密码[/quote]那你倒是贴一下你的错误报告啊,一句话不说让人猜吗?[/quote]
我一楼都说了啊,
难道还要我在从头说一遍,
  • 打赏
  • 举报
回复
引用 8 楼 u010941149 的回复:
[quote=引用 7 楼 xomix 的回复:]
跟你说了10次了你用户密码放了两次,你找一个用户名密码一致的来就能打开了


如果是用户名和密码错误,根本不可能执行到 while ((s = sr.ReadLine()) != null)
我上面的是参考,实际写的时候用的是正确的用户名和密码[/quote]那你倒是贴一下你的错误报告啊,一句话不说让人猜吗?
sdfgrtyu 2018-07-20
  • 打赏
  • 举报
回复
sdfgrtyu 2018-07-20
  • 打赏
  • 举报
回复
引用 7 楼 xomix 的回复:
跟你说了10次了你用户密码放了两次,你找一个用户名密码一致的来就能打开了


如果是用户名和密码错误,根本不可能执行到 while ((s = sr.ReadLine()) != null)
我上面的是参考,实际写的时候用的是正确的用户名和密码
  • 打赏
  • 举报
回复
跟你说了10次了你用户密码放了两次,你找一个用户名密码一致的来就能打开了
sdfgrtyu 2018-07-20
  • 打赏
  • 举报
回复
执行到s = sr.ReadLine()报错无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。

用浏览器

就能打开,,,
sdfgrtyu 2018-07-20
  • 打赏
  • 举报
回复
有大手子给分析分析不啊,,,
  • 打赏
  • 举报
回复
发栈信息吧
try 一下,然后看ex.StackTrace吧,你有试着自己建一个ftp测试能否获取目录吗?这样就能看到服务端信息了。
sdfgrtyu 2018-07-19
  • 打赏
  • 举报
回复
引用 1 楼 xomix 的回复:

req.Credentials = new NetworkCredential(ftpPassword, ftpPassword);


如果你是复制的代码我想问题在这里


我是到s = sr.ReadLine()
这块才报错,
  • 打赏
  • 举报
回复

req.Credentials = new NetworkCredential(ftpPassword, ftpPassword);


如果你是复制的代码我想问题在这里
sdfgrtyu 2018-07-19
  • 打赏
  • 举报
回复
顶,,,,
  • 打赏
  • 举报
回复
引用 2 楼 u010941149 的回复:
[quote=引用 1 楼 xomix 的回复:]

req.Credentials = new NetworkCredential(ftpPassword, ftpPassword);



如果你是复制的代码我想问题在这里


我是到s = sr.ReadLine()
这块才报错,[/quote]


错误提示是用户名密码错误吧,你这特娘的给了两个密码进去,你说你用户名和密码都输入密码能正确吗?

7,765

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧