首頁 > 後端開發 > C++ > 如何在 C# 中高效率解析 FTP 目錄清單?

如何在 C# 中高效率解析 FTP 目錄清單?

Barbara Streisand
發布: 2024-12-26 13:48:14
原創
970 人瀏覽過

How to Efficiently Parse FTP Directory Listings in C#?

在C# 中解析WebRequestMethods.Ftp.ListDirectoryDe​​​​tails 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 目錄清單的過程。

    使用第三方函式庫的好處
  • 可靠的解析:解析MLSD處理回應與各種LIST 指令格式
  • 廣泛的詳細資訊:機器可讀的MLSD回應提供詳細信息,例如文件權限、群組和所有者。
回退到 LIST 指令: 如果不支援 MLSD,圖書館可以使用 LIST 指令並將回應轉換為一致的格式。

以上是如何在 C# 中高效率解析 FTP 目錄清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板