2013-06-21 2 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.ListDirectoryDetails을하지 않습니다 적이 있습니까? 그냥 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(); 
      } 
관련 문제