Maison >développement back-end >C++ >Comment analyser efficacement les listes de répertoires FTP en C# ?
Analyse de la réponse FTP de WebRequestMethods.Ftp.ListDirectoryDetails en C#
La méthode FtpWebRequest.ListDirectoryDetails permet de récupérer des informations détaillées sur les fichiers et répertoires dans un serveur FTP. Cependant, l'analyse de la réponse de cette méthode peut être difficile en raison des différents formats utilisés par les différents serveurs FTP.
Analyse personnalisée pour différents formats de réponse
Pour analyser la réponse de manière transparente, une classe C# personnalisée peut être créée pour gérer les différents formats. Par exemple :
string pattern = @"\s+(\d+)(\w+)(\s+|\s*\d+[^ ].+)(.*)"; Regex regex = new Regex(pattern); FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/"); request.Credentials = new NetworkCredential("user", "password"); request.Method = WebRequestMethods.Ftp.ListDirectoryDetails; StreamReader reader = new StreamReader(request.GetResponse().GetResponseStream()); while (!reader.EndOfStream) { string line = reader.ReadLine(); Match match = regex.Match(line); if (match.Success) { string fileName = match.Groups[4].Value.Trim(); long size = long.Parse(match.Groups[1].Value); string lastModified = match.Groups[2].Value + " " + match.Groups[3].Value; bool isDirectory = match.Groups[1].Value.StartsWith("d"); Console.WriteLine("{0}\t{1}\t{2}", fileName, lastModified, size); } }
Utilisation d'un client FTP moderne avec une réponse lisible par machine
Cependant, il est recommandé d'utiliser un client FTP prenant en charge la commande MLSD, qui renvoie les listes de répertoires dans un format lisible par machine. L'analyse de la réponse de la commande LIST lisible par l'homme devrait être un dernier recours pour les serveurs obsolètes qui ne prennent pas en charge MLSD.
Les bibliothèques tierces telles que WinSCP .NET offrent une fonctionnalité client FTP avec prise en charge de MLSD et de divers éléments lisibles par l'homme. formats de liste. Cela simplifie le processus d'analyse des listes de répertoires FTP.
Avantages de l'utilisation d'une bibliothèque tierce
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!