2016-10-29 4 views
1

Ich entwickle eine Anwendung zum Herunterladen von Datei von FTP-Servern. Die FTP-Server sind aktualisiert und verschiedene Datetime-Formate, die ich erhalte. Und ich kann sie nicht analysieren. Wie kann ich das unterschiedliche Ergebnisformat von FTPs finden? Gibt es eine Sit oder eine allgemeine Lösung für verschiedene Formate? Zum Beispiel habe ich von verschiedenen Servern diese Formate erhalten:FTP-Server Verzeichnislistenformate

1- 08-31-16 10:41PM     95 Global.asax 
2- -rw-r--r-- 1 0  0   239832 Apr 01 2014 DriverPackSolution.exe 

Danke für Ihre Hilfe.

Antwort

2

Es gibt keine Standard- oder allgemeine Lösung für Formate der Listenantwort auf den FTP-Befehl LIST. Der LIST Befehl ist, was hinter der ListDirectoryDetails Methode der FtpWebRequest steht.

Der Befehl LIST wurde zu Zeiten eingeführt, als das maschinelle Parsing wahrscheinlich nicht erwartet wurde (Anfang der 1980er Jahre).

Um dieses Problem zu beheben, wurde der Befehl MLSD später eingeführt. Das Format einer Auflistung für diesen Befehl wird durch RFC 3659 definiert. Ein official example:

Type=cdir;Modify=19981107085215;Perm=el; tmp 
Type=cdir;Modify=19981107085215;Perm=el; /tmp 
Type=pdir;Modify=19990112030508;Perm=el; .. 
Type=file;Size=25730;Modify=19940728095854;Perm=; capmux.tar.z 
Type=file;Size=1830;Modify=19940916055648;Perm=r; hatch.c 
Type=file;Size=25624;Modify=19951003165342;Perm=r; MacIP-02.txt 
Type=file;Size=2154;Modify=19950501105033;Perm=r; uar.netbsd.patch 
Type=file;Size=54757;Modify=19951105101754;Perm=r; iptnnladev.1.0.sit.hqx 
Type=file;Size=226546;Modify=19970515023901;Perm=r; melbcs.tif 
Type=file;Size=12927;Modify=19961025135602;Perm=r; tardis.1.6.sit.hqx 
Type=file;Size=17867;Modify=19961025135602;Perm=r; timelord.1.4.sit.hqx 
Type=file;Size=224907;Modify=19980615100045;Perm=r; uar.1.2.3.sit.hqx 
Type=file;Size=1024990;Modify=19980130010322;Perm=r; cap60.pl198.tar.gz 

Leider ist der .NET-Framework nicht unterstützt den MLSD Befehl.

Sie müssen eine FTP-Clientbibliothek/-baugruppe eines Drittanbieters verwenden, um den standardisierten Befehl MLSD zu nutzen.

Siehe auch

Verwandte Themen