如何只获取FTP中的文件夹名称列表?

时间:2014-02-06 07:28:34

标签: c#

如何只获取ftp的文件夹名称列表而不是该文件夹的文件名称,假设我有4个文件夹(A,B,C,D)我想获得4个文件夹名称而不是文件?在c#中工作。

我见过提供文件列表的代码。

我试过这段代码,它给了我文件名和文件夹名,但我只需要文件夹名。

此致 海德尔

1 个答案:

答案 0 :(得分:1)

试试这个

string HtmlResult = String.Empty;
Console.WriteLine("Starting listing of files....");
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(Properties.Settings.Default.FtpUrl);
request.Credentials = new NetworkCredential(Properties.Settings.Default.FtpUsername, Properties.Settings.Default.FtpPassword);
request.UsePassive = false;
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
using (Stream responsestream = response.GetResponseStream())
{
    using (StreamReader reader = new StreamReader(responsestream))
    {
        string _line = reader.ReadLine();
        while (_line != null && _line != String.Empty)
        {
            HtmlResult += _line;
            _line = reader.ReadLine();
        }
    }                    
}
//parse html output
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(HtmlResult);
foreach (HtmlAgilityPack.HtmlNode node in doc.DocumentNode.SelectNodes("//a[@href]"))
{
    if(node.InnerText.Contains(".txt")) FtpListing.Add(node.InnerText);
}
Console.WriteLine("{0} Files found", FtpListing.Count);