如何使用C#中的FTP列出目录内容?
我使用下面的代码用FTP列出目录内容它以XML格式返回结果,但我只想要目录名而不是整个内容。
我该怎么做?
public class WebRequestGetExample
{
public static void Main ()
{
// Get the object used to communicate with the server.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/");
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
// This example assumes the FTP site uses anonymous logon.
request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
Console.WriteLine(reader.ReadToEnd());
Console.WriteLine("Directory List Complete, status {0}", response.StatusDescription);
reader.Close();
response.Close();
}
}
答案 0 :(得分:57)
试试这个:
FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(uri);
ftpRequest.Credentials =new NetworkCredential("anonymous","janeDoe@contoso.com");
ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
StreamReader streamReader = new StreamReader(response.GetResponseStream());
List<string> directories = new List<string>();
string line = streamReader.ReadLine();
while (!string.IsNullOrEmpty(line))
{
directories.Add(line);
line = streamReader.ReadLine();
}
streamReader.Close();
它给了我一个目录列表...所有列在目录字符串列表中...告诉我这是否是你需要的
答案 1 :(得分:1)
您可能正在寻找PrintWorkingDirectory
答案 2 :(得分:1)
您需要ListDirectory列出目录内容
编辑:或者你可以使用这个包装好的Chilkat库
答案 3 :(得分:1)
某些代理重新格式化目录列表,因此除非您可以保证代理不会更改,否则很难可靠地解析目录列表
答案 4 :(得分:0)
在以下链接中有一个方法GetDirectoryInformation(),它从FTP目录递归地获取文件和目录。
答案 5 :(得分:0)
获取FTP目录内容的最简单,最有效的方法:
var contents = GetFtpDirectoryContents(new Uri(“ftpDirectoryUri”),new NetworkCredential(“userName”,“password”));
Collection<Banana>
答案 6 :(得分:-1)
如果要列出de目录中文件的名称,则必须放入 (reqFTP.Proxy = null;)在调用之前(reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;)。
希望这可以帮到你!