C#類如何解析WebRequestMethods.Ftp.ListDirectoryDetails FTP響應?
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
我正在創(chuàng)建一個服務來監(jiān)視FTP位置以獲得新的更新,并需要使用WebRequestMethods.Ftp.ListDirectoryDetails方法來解析從FtpWebRequest響應返回的響應。 如果所有響應遵循相同的格式,這將是相當容易的,但不同的FTP服務器軟件提供不同的響應格式。 例如,可以返回: 08-10-11 12:02PM <DIR> Version2 06-25-09 02:41PM 144700153
image34.gif 06-25-09 02:51PM 144700153 updates.txt 11-04-10 02:45PM 144700214
digger.tif 另一臺服務器可能會返回: d--x--x--x 2 ftp ftp 4096 Mar 07 2002 bin -rw-r--r-- 1 ftp ftp 659450 Jun 15 05:07 TEST.TXT -rw-r--r-- 1 ftp ftp 101786380 Sep 08 2008 TEST03-05.TXT drwxrwxr-x 2 ftp ftp 4096 May 06 12:24 dropoff 有誰知道完全托管(不需要訪問Windows上的外部DLL)C#類,可以無縫地處理這些情況? 我只需要列出具有以下詳細信息的目錄的內(nèi)容:文件/目錄名稱,上次更新或創(chuàng)建的時間戳。
使用Regex構建了一個簡單的解決方案,使用捕獲組解析每一行中的相關信息: public static Regex FtpListDirectoryDetailsRegex = new Regex(@".*(? 然后,可以通過以下方法從捕獲組中提取值: string ftpResponse = "-r--r--r-- 1 ftp ftp 0 Nov 19 11:08 aaa.txt"; Match match = FtpListDirectoryDetailsRegex.Match(ftpResponse); string month = match.Groups["month"].Value; string day = match.Groups["day"].Value; string yearTime = match.Groups["yearTime"].Value; string fileName = match.Groups["fileName"].Value; 有些不值得注意的事情是:
實際上試圖解析 你希望使用支持現(xiàn)代 例如對于WinSCP .NET程序集,可以使用其 他們在內(nèi)部使用 返回的列表被顯示為具有以下屬性的
大多數(shù)其他第三方庫也會這樣做。 為此,使用 該文章在 2021/7/9 15:03:26 編輯過 |
關鍵字查詢
相關文章
正在查詢... |