FTP-Antworten mit einer flexiblen C#-Klasse analysieren
Die Verwaltung von FTP-Verbindungen kann eine komplexe Aufgabe sein, insbesondere wenn es um unterschiedliche Antwortformate geht. Um dieser Herausforderung zu begegnen, können Sie die ListDirectoryDetails-Methode von FtpWebRequest verwenden. Dies kann jedoch immer noch das Parsen und Behandeln von Variationen in den Antworten erfordern.
Parsen von Listen im DOS-/Windows-Stil
Für Einträge im DOS/Windows-Format können Sie den folgenden Code verwenden:
string pattern = @"\^(\d+-\d+-\d+\s+\d+:\d+(?:AM|PM))\s+(<DIR>|\d+)\s+(.+)$"; Regex regex = new Regex(pattern); IFormatProvider culture = CultureInfo.GetCultureInfo("en-us"); while (!reader.EndOfStream) { string line = reader.ReadLine(); Match match = regex.Match(line); string s = match.Groups[1].Value; DateTime modified = DateTime.ParseExact(s, "MM-dd-yy hh:mmtt", culture, DateTimeStyles.None); s = match.Groups[2].Value; long size = (s != "<DIR>") ? long.Parse(s) : 0; string name = match.Groups[3].Value; Console.WriteLine( "{0,-16} size = {1,9} modified = {2}", name, size, modified.ToString("yyyy-MM-dd HH:mm")); }
This Regex-Muster gleicht Zeitstempel, Datei-/Verzeichnisgrößen und Namen für den DOS/Windows-Stil ab.
Auflistungen im UNIX-Stil
Für Auflistungen im UNIX-Stil sollten Sie sich auf Folgendes beziehen die Antworten zum Umgang mit MLSD für FTP-Verzeichnisse.
Eine alternative Option: Modernes MLSD Befehl
Idealerweise können Sie den MLSD-Befehl nutzen, um Verzeichnislisten in einem strukturierten Format zu erhalten. Dies ist dem Parsen des für Menschen lesbaren LIST-Formats vorzuziehen. MLSD wird von vielen Bibliotheken und Tools von Drittanbietern wie WinSCP unterstützt.
Fazit
Das Parsen von FTP-Antworten kann komplex sein, aber durch die Verwendung der richtigen Tools und Techniken können Sie können eine zuverlässige Handhabung unterschiedlicher Listungsformate gewährleisten. Der Einsatz eines umfassenden Tools wie WinSCP, das sowohl MLSD als auch LIST unterstützt, kann eine robustere und erweiterbare Lösung für Ihre FTP-Verwaltungsanforderungen bieten.
Das obige ist der detaillierte Inhalt vonWie kann ich FTP-Antworten in C# effizient für verschiedene Listenformate analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!