我想解析Ftp.ListDirectoryDetails命令的結果,我只想FileName和最後修改日期非目錄。只列出FTP服務器的文件和上次修改日期用C#
命令將返回此:
「09年1月21日下午6時16 rattandom」 「09年1月21日下午8點01分9900 myfile.txt的」
是否有人知道的方式來解析它?我正在閱讀,如果服務器是Windows或Unix,它將返回一些不同的東西。我粘貼的結果是用於Windows 2003 Server中的FTP
我想解析Ftp.ListDirectoryDetails命令的結果,我只想FileName和最後修改日期非目錄。只列出FTP服務器的文件和上次修改日期用C#
命令將返回此:
「09年1月21日下午6時16 rattandom」 「09年1月21日下午8點01分9900 myfile.txt的」
是否有人知道的方式來解析它?我正在閱讀,如果服務器是Windows或Unix,它將返回一些不同的東西。我粘貼的結果是用於Windows 2003 Server中的FTP
FTP列表結果是非標準的,因此每個FTP服務器都可能會返回不同的結果。
有一個建議的常規例外,可以在基於Windows和Unix的FTP服務器上運行。見this answer。
你可能想嘗試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();
}
請注意,這是我創建了一個商業產品。
和我必須做什麼?有一個普遍的解析? – jmpena 2009-09-10 23:24:13
對於您可能會看到的每個可能的FTP服務器,您將有不同的解析。沒有一致的格式來獲取你想要的信息。 – Joe 2009-09-11 00:33:39
+1我不知道,但如果這是真的,它實際上很難實施一個FTP客戶端。 – Groo 2011-07-13 11:33:03