2010-12-30 2 views
6

Ich bin in der Mitte einen FTP-Server zu schreiben, aber ich bin ein wenig verwirrt darüber, welches Format in die Dateiliste zu senden.Format der Daten, die vom FTP LIST Befehl zurückgegeben werden?

Unter Verwendung von 2-Terminals und ein FTP-Client, ich war in der Lage eines einfach zu durchlaufen FTP-Austausch Allerdings war ich nicht wirklich sicher, in welchem ​​Format die Dateilisten gesendet werden.

Gibt es ein akzeptiertes Format? Welche Spalten sollte ich verwenden?

+1

Ich glaube das nicht * ist * so etwas wie ein Standard ähnelt. Unterschiedliche Server geben unterschiedliche Ausgaben ab, sie sollen von Menschen lesbar und nicht maschinenlesbar sein. – skaffman

+0

@skaffman netter Kommentar, aber das sollte eine Antwort sein, kein Kommentar, damit andere dafür stimmen können. –

+0

@skaff: Wie sollen dann grafische FTP-Clients diese interpretieren? –

Antwort

3

Dies ist, was die RFC zu sagen hat:

Die Datenübertragung erfolgt über die Datenverbindung in Typ ASCII oder Typ EBCDIC. (Der Benutzer muss sicherstellen, dass der TYPE entsprechend ASCII oder EBCDIC ist). Da die Information in einer Datei von System zu System stark variieren kann, kann es schwierig sein, diese Information in einem Programm automatisch zu verwenden, aber sie kann für einen menschlichen Benutzer ziemlich nützlich sein.

Also ist das Ergebnis nicht erwartet automatisch analysiert werden.

+0

Wie listen dann grafische FTP-Clients Dateien auf? –

+0

@George Edison - sie _probably_ haben eine Liste häufig verwendeter Formate und analysieren diese. – Oded

+0

@George Edison - Siehe die Antwort von @Eugene Mayevsky, diese sind anscheinend durch _extensions_ auf den FTP-Standard getan. – Oded

3

Der Standard definiert nicht das Format der mit dem LIST-Befehl gesendeten/empfangenen Verzeichnisliste. Die meisten Server verwenden das Unix-Listing-Format (weiß nicht, ob es in einem Dokument definiert ist, aber es ist ziemlich einfach zu generieren und zu parsen), einige verwenden das DOS/Windows-Format. Andere Formate (mehr als 400, soweit ich weiß) werden weltweit verwendet, aber das Unix ist ein Standard de-facto geworden.

Jetzt ist es wichtig zu implementieren: MLST und LMSD-Erweiterungsbefehle, definiert in RFC 3659. Sie definieren eine Möglichkeit, eine maschinenlesbare Auflistung zu erstellen und zu erhalten, was in jedem modernen FTP-Server sehr willkommen ist.