C#读取FTP文件名问题

alan99 2012-01-05 05:46:44
代码如下,在Console.WriteLine(line)那一行,
1,我在我电脑上可以正常读取文件夹下每个文件的文件名
2,换一台电脑用同一程序,读取出来的内容竟然是个HTML页面的代码(就是从浏览器访问FTP站点时的页面)

唯一的差别是我的电脑上装了FTP软件,另一台没装,这个有差别吗?怎么解决?

public String GetFilesAsString(string folder,string fileExtension)
{
StringBuilder result = new StringBuilder();
FtpWebRequest reqFTP;
try
{
String ftpserver = ftp + folder+"/";

reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpserver));
reqFTP.UsePassive = false;
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(username, password);
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();

StreamReader reader = new StreamReader(response.GetResponseStream(), ConfigHelper.MyEncoding);
string line = "";

while (reader.Peek()>-1)
{
line = reader.ReadLine();
Console.WriteLine(line);//***********这行************
}

if (result.ToString().LastIndexOf('\n') >= 0)
result.Remove(result.ToString().LastIndexOf('\n'), 1);
reader.Close();
response.Close();

return result.ToString();
}
catch (Exception ex)
{
}
return null;
}
...全文
464 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bzkerchina 2012-10-06
  • 打赏
  • 举报
回复
我觉的是操作系统等的原因,
winXP下访问FTP默认以资源管理器打开,
但是Win7默认以浏览器加载方式打开
熙风 2012-01-13
  • 打赏
  • 举报
回复
在另一台机子上面装一个 FTP软件 看下。。。
alan99 2012-01-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sandy945 的回复:]

http://social.msdn.microsoft.com/Forums/zh-CN/2212/thread/c6e707d9-87cd-435d-9938-4327bdb19d67/
[/Quote]


除了异步调用外,跟我的代码没什么差别呀。不知道我有没有描述清楚,问题在于用ReadLine读出来的是一个HTML代码。奇怪,没人碰到这个问题吗?

110,556

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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