问题如下:
我找到了一个可以列出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 :(得分: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();
}