Heim >Backend-Entwicklung >C++ >Wie kann man FTP-Verzeichnislisten in C# effizient analysieren?

Wie kann man FTP-Verzeichnislisten in C# effizient analysieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-26 13:48:14983Durchsuche

How to Efficiently Parse FTP Directory Listings in C#?

Analyse der FTP-Antwort von WebRequestMethods.Ftp.ListDirectoryDetails in C#

Die Methode FtpWebRequest.ListDirectoryDetails ermöglicht den Abruf detaillierter Informationen zu Dateien und Verzeichnissen in ein FTP-Server. Das Parsen der Antwort dieser Methode kann jedoch aufgrund der unterschiedlichen Formate, die von verschiedenen FTP-Servern verwendet werden, eine Herausforderung darstellen.

Benutzerdefiniertes Parsen für verschiedene Antwortformate

Zum Parsen der Antwort nahtlos kann eine benutzerdefinierte C#-Klasse erstellt werden, die die verschiedenen Formate verarbeitet. Zum Beispiel:

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);
    }
}

Verwendung eines modernen FTP-Clients mit maschinenlesbarer Antwort

Es wird jedoch empfohlen, einen FTP-Client zu verwenden, der den MLSD-Befehl unterstützt. die Verzeichnislisten in einem maschinenlesbaren Format zurückgibt. Das Parsen der für Menschen lesbaren LIST-Befehlsantwort sollte der letzte Ausweg für veraltete Server sein, die MLSD nicht unterstützen.

Bibliotheken von Drittanbietern wie WinSCP .NET bieten FTP-Client-Funktionalität mit Unterstützung für MLSD und verschiedene für Menschen lesbare Formate auflisten. Dies vereinfacht das Parsen von FTP-Verzeichnislisten.

Vorteile der Verwendung einer Drittanbieterbibliothek

  • Zuverlässiges Parsen: MLSD-Parsing Antworten und verschiedene LIST-Befehlsformate werden verarbeitet nahtlos.
  • Ausführliche Details: Maschinenlesbare MLSD-Antworten liefern detaillierte Informationen wie Dateiberechtigungen, Gruppe und Eigentümer.
  • Fallback auf LIST-Befehl: Wenn MLSD nicht unterstützt wird, können Bibliotheken den LIST-Befehl verwenden und die Antwort in eine konsistente umwandeln Format.

Das obige ist der detaillierte Inhalt vonWie kann man FTP-Verzeichnislisten in C# effizient analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn