2009-09-10 8 views
1

J'essaie d'analyser le résultat de la commande Ftp.ListDirectoryDetails, je veux juste le nom de fichier et la date de dernière modification Not Directories.Liste uniquement les fichiers et la dernière date de modification d'un serveur FTP avec C#

La commande retourne: ce

"21/01/09 18:16 rattandom" "21/01/09 20:01 9900 myfile.txt"

Est-ce que quelqu'un sait le chemin de Parse il? Je lisais et si le serveur est Windows ou Unix, il va retourner quelque chose de différent. Le résultat que je colle est pour un FTP dans un serveur Windows 2003

Répondre

4

Les résultats de la liste FTP ne sont pas standard, donc chaque serveur FTP pourrait renvoyer quelque chose de différent.

+0

et ce que je dois faire? il y a une analyse universelle? – jmpena

+0

Vous aurez une analyse différente pour chaque serveur FTP possible que vous pourriez voir. Il n'y a pas de format cohérent pour obtenir l'information que vous voulez. – Joe

+0

+1 Je ne le savais pas, mais si c'est vrai, c'est vraiment nul d'implémenter un client ftp. – Groo

1

Il existe une exception régulière suggérée qui fonctionne sur les serveurs FTP Windows et Unix. Voir this answer.

0

Vous pouvez essayer Ftp.dll FTP component il parésie la plupart des UNIX et des réponses de commande Windows LIST:

using (Ftp client = new Ftp()) 
{ 
    client.Connect("ftp.example.org"); 
    client.Login("user", "password"); 

    List<FtpItem> items = client.GetList(); 

    foreach (FtpItem item in items) 
    { 
     Console.WriteLine("Name:  {0}", item.Name); 
     Console.WriteLine("Size:  {0}", item.Size); 
     Console.WriteLine("Modify date: {0}", item.ModifyDate); 

     Console.WriteLine("Is folder: {0}", item.IsFolder); 
     Console.WriteLine("Is file:  {0}", item.IsFile); 
     Console.WriteLine("Is symlink: {0}", item.IsSymlink); 

     Console.WriteLine(); 
    } 

    client.Close(); 
} 

S'il vous plaît noter que ceci est un produit commercial que j'ai créé.

Questions connexes