C# classe pour analyser WebRequestMethods.Ftp.ListDirectoryDetails réponse FTP

Je suis de la création d'un service pour surveiller les sites FTP pour de nouvelles mises à jour et exigent la capacité à analyser la réponse retournée à partir d'un FtpWebRequest réponse à l'aide de la WebRequestMethods.Ftp.ListDirectoryDetails méthode. Il serait assez facile si toutes les réponses a suivi le même format, mais différentes serveur FTP logiciel fournir différents formats de réponse.

Par exemple, on pourrait retourner:

08-10-11  12:02PM       <DIR>          Version2
06-25-09  02:41PM            144700153 image34.gif
06-25-09  02:51PM            144700153 updates.txt
11-04-10  02:45PM            144700214 digger.tif

Et un autre serveur peut retourner:

d--x--x--x    2 ftp      ftp          4096 Mar 07  2002 bin
-rw-r--r--    1 ftp      ftp        659450 Jun 15 05:07 TEST.TXT
-rw-r--r--    1 ftp      ftp      101786380 Sep 08  2008 TEST03-05.TXT
drwxrwxr-x    2 ftp      ftp          4096 May 06 12:24 dropoff

Et d'autres différences ont été observées aussi donc il y a probablement un certain nombre de différences subtiles je n'ai pas rencontré encore.

Personne ne sait d'complètement gérée (ne nécessite pas d'accès à des dll sous Windows) de classe C# qui gère ces situations de façon transparente?

Je n'ai besoin de lister le contenu d'un répertoire avec les détails suivants: nom de Fichier/dossier, dernière mise à jour ou créé d'horodatage, nom de fichier/dossier.

Merci d'avance pour toutes les suggestions,
Gavin

  • Juste une remarque - FTP n'est pas spécifier le format exact de la liste, et il existe plus de 400 formats (bien que les deux que vous avez mentionnés, Windows et Unix) sont les plus utilisés de tous.
  • Ouf - c'est beaucoup de formats!
  • J'ai trouvé cet exemple, mais je doute que c'est trop robuste - blogs.msdn.com/b/adarshk/archive/2004/09/15/230177.aspx
  • Juste une info, je viens de premier type et je l'utilise dateTime = DateTime.ParseExact(datestring, "MM-dd-yy HH:mmtt", DateTimeFormatInfo.InvariantInfo); à analyser. Notez que l'espace entre yy HH devrait être le double de l'espace.
InformationsquelleAutor Gavin | 2011-08-15