2013-06-21 68 views
1

问题如下:如何列出ftp服务器上的目录中的文件?

我找到了一个能够列出ftp服务器根目录下的文件和目录的解决方案。但我也需要目录的内容。我需要修改这个方法吗?

internal void ListFilesOnServer() 
     { 
      try 
      { 
       FtpWebRequest ftpwrq = (FtpWebRequest)WebRequest.Create(server); 
       ftpwrq.Credentials = new NetworkCredential(user,passw); 
       ftpwrq.Method = WebRequestMethods.Ftp.ListDirectory; 
       ftpwrq.KeepAlive = false; 
       FtpWebResponse fresponse = (FtpWebResponse)ftpwrq.GetResponse(); 
       StreamReader sr = new StreamReader(fresponse.GetResponseStream()); 
       StreamWriter sw = new StreamWriter(new FileStream("test.txt", FileMode.Create)); 
       sw.WriteLine(sr.ReadToEnd()); 
       sw.Close(); 
       fresponse.Close(); 
       sr.Close(); 
       MessageBox.Show("Gotcha"); 
      } 
      catch (Exception e) 
      { 
       MessageBox.Show(e.Message); 
      } 
     } 
+0

还没有尝试过,但System.Net.WebRequestMethods.Ftp.ListDirectoryDe​​tails不是你需要什么?刚刚从intellisense获得它,它看起来像你在找什么。 – Gray

+0

这只是提供了关于列出的文件和目录的更多细节。 – NeverJr

回答

1

则可以使用下面的代码做:

  reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(sUri)); 
      reqFTP.UseBinary = true; 
      reqFTP.Credentials = new NetworkCredential(sFtpUserID, sFtpPassword); 
      reqFTP.Method = WebRequestMethods.Ftp.ListDirectory; 
      reqFTP.Proxy = null; 
      reqFTP.KeepAlive = false; 
      reqFTP.UsePassive = false; 
      response = reqFTP.GetResponse(); 
      reader = new StreamReader(response.GetResponseStream()); 
      string line = reader.ReadLine(); 
      while (line != null) 
      { 
       result.Append(line); 
       result.Append("\n"); 
       line = reader.ReadLine(); 
      } 
相关问题