日期:2014-05-18  浏览次数:20964 次

WinForm怎么遍历ftp上某一文件夹里面所有的文件
我想要遍历到FTP上某一文件夹中的所有文件,里面还有好几层文件夹。然后把得到的文件名以树的形式放到一个TreeView中。下面是我获取FTP文件夹的部分代码。这样能够获取到第一层的文件夹。可是只得到一个数组的形式。不能弄到TreeView中。而且得到的值前面还有好多乱码:如下图,哪位帮帮忙,解决一下。
public string[] GetFileList() 
  {
  string[] downloadfiles;
  StringBuilder result = new StringBuilder();
  FtpWebRequest reqFTP;

  try
  {
  reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpIp + "/"+"LearningCenter/"));
  reqFTP.UseBinary = true;
  reqFTP.Credentials = new NetworkCredential(ftpUser, ftpPwd);
  reqFTP.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
  WebResponse respose = reqFTP.GetResponse();
  StreamReader reader = new StreamReader(respose.GetResponseStream());
   
  string line = reader.ReadLine();
   
  while (line != null)
  {
  result.Append(line);
  result.Append("\n");
  line = reader.ReadLine();
  }

  //filepath = result.ToString();
  result.Remove(result.ToString().LastIndexOf('\n'), 1);
  reader.Close();
  respose.Close();

  toolStripStatusLabel1.Text = "下载列表更新完毕";
  return result.ToString().Split('\n');
  }
这显示出来的数据。前面的都是些什么东西啊。我只要名称就行了

------解决方案--------------------
参考下这个,不过比较老了:

FTP Explorer in C# Version 2.0






------解决方案--------------------
建议lz现在baidu 和 google 搜索一下 ftp 的命令.
------解决方案--------------------
获取文件夹列表http://www.codeproject.com/KB/IP/SimpleFTPDemo.aspx?display=Print
FTP操作类