在C# 中解析WebRequestMethods.Ftp.ListDirectoryDetails FTP 回應
FWebRequest.List 回應
FWebRequest.ListDitorydtory目錄的詳細資訊FTP 伺服器。但是,由於不同 FTP 伺服器使用不同的格式,因此解析此方法的回應可能具有挑戰性。
不同回應格式的自訂解析
string pattern = @"\s+(\d+)(\w+)(\s+|\s*\d+[^ ].+)(.*)"; Regex regex = new Regex(pattern); FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/"); request.Credentials = new NetworkCredential("user", "password"); request.Method = WebRequestMethods.Ftp.ListDirectoryDetails; StreamReader reader = new StreamReader(request.GetResponse().GetResponseStream()); while (!reader.EndOfStream) { string line = reader.ReadLine(); Match match = regex.Match(line); if (match.Success) { string fileName = match.Groups[4].Value.Trim(); long size = long.Parse(match.Groups[1].Value); string lastModified = match.Groups[2].Value + " " + match.Groups[3].Value; bool isDirectory = match.Groups[1].Value.StartsWith("d"); Console.WriteLine("{0}\t{1}\t{2}", fileName, lastModified, size); } }
解析回應可以無縫地建立處理不同格式的自訂 C# 類別。例如:
使用具有機器可讀回應的現代FTP 用戶端
但是,建議使用支援MLSD 命令的FTP 用戶端,它以機器可讀取的格式傳回目錄清單。解析人類可讀的 LIST 命令回應應該是不支援 MLSD 的過時伺服器的最後手段。WinSCP .NET 等第三方函式庫提供 FTP 用戶端功能,支援 MLSD 和各種人類可讀的功能清單格式。這簡化了解析 FTP 目錄清單的過程。
以上是如何在 C# 中高效率解析 FTP 目錄清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!