2009-09-10 39 views
1

我想解析Ftp.ListDirectoryDe​​tails命令的結果,我只想FileName和最後修改日期非目錄。只列出FTP服務器的文件和上次修改日期用C#

命令將返回此:

「09年1月21日下午6時16 rattandom」 「09年1月21日下午8點01分9900 myfile.txt的」

是否有人知道的方式來解析它?我正在閱讀,如果服務器是Windows或Unix,它將返回一些不同的東西。我粘貼的結果是用於Windows 2003 Server中的FTP

回答

4

FTP列表結果是非標準的,因此每個FTP服務器都可能會返回不同的結果。

+0

和我必須做什麼?有一個普遍的解析? – jmpena 2009-09-10 23:24:13

+0

對於您可能會看到的每個可能的FTP服務器,您將有不同的解析。沒有一致的格式來獲取你想要的信息。 – Joe 2009-09-11 00:33:39

+0

+1我不知道,但如果這是真的,它實際上很難實施一個FTP客戶端。 – Groo 2011-07-13 11:33:03

1

有一個建議的常規例外,可以在基於Windows和Unix的FTP服務器上運行。見this answer

0

你可能想嘗試Ftp.dll FTP component它pareses大多數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(); 
} 

請注意,這是我創建了一個商業產品。

相關問題