使用C#列出FTP服务器的仅文件和上次修改日期

时间:2009-09-10 23:16:22

标签: c# .net ftp

我正在尝试解析Ftp.ListDirectoryDe​​tails命令的结果,我只想要FileName和最后修改日期Not Directories。

该命令返回:

“01-21-09 06:16 PM rattandom” “01-21-09 08:01 PM 9900 myfile.txt”

有人知道解析它的方法吗?我正在阅读,如果服务器是Windows或Unix,它将返回不同的东西。我粘贴的结果是Windows 2003 Server中的FTP

3 个答案:

答案 0 :(得分:4)

FTP列表结果是非标准的,因此每个FTP服务器都可能返回不同的内容。

答案 1 :(得分:1)

有一个建议的常规异常适用于基于Windows和Unix的FTP服务器。请参阅this answer

答案 2 :(得分:0)

您可能想尝试Ftp.dll FTP component它会使大多数UNIX和Windows LIST命令响应无效:

using (Ftp client = new Ftp())
{
    client.Connect("ftp.example.org");
    client.Login("user", "password");

    List<FtpItem> items = client.GetList();

    foreach (FtpItem item in items)
    {
        Console.WriteLine("Name:        {0}", item.Name);
        Console.WriteLine("Size:        {0}", item.Size);
        Console.WriteLine("Modify date: {0}", item.ModifyDate);

        Console.WriteLine("Is folder:   {0}", item.IsFolder);
        Console.WriteLine("Is file:     {0}", item.IsFile);
        Console.WriteLine("Is symlink:  {0}", item.IsSymlink);

        Console.WriteLine();
    }

    client.Close();
}

请注意,这是我创建的商业产品。