analisando as respostas FTP para listagem de diretórios com formatos variáveis usando C#
declaração de problema:
RESPOSTIDO A FETO FTP LOCAÇÕES: o método WebRequestMethods.ftp.ListDirectoryDetails. O desafio surge devido a variações nos formatos de resposta no software FTP Server. Por exemplo, um servidor pode retornar uma resposta em um formato DOS no estilo Windows, enquanto outro pode aderir a um formato Unix de estilo Linux. Para o formato do estilo do DOS, o código a seguir pode ser utilizado:
string padrony = "^(\\ d -\\ d -\\ d \\ s \\ d: \\ d (\\ w {2}) \\ s (
string pattern = "^(\\d -\\d -\\d \\s \\d :\\d (\\w{2}))\\s (|\\d )\\s (.*)$"; Regex regex = new Regex(pattern); while (!reader.EndOfStream) { string line = reader.ReadLine(); Match match = regex.Match(line); string s = match.Groups[1].Value; DateTime modified = DateTime.ParseExact(s, "MM-dd-yy hh:mmtt", culture, DateTimeStyles.None); s = match.Groups[2].Value; long size = (s != " ") ? long.Parse(s) : 0; string name = match.Groups[3].Value; Console.WriteLine("{0,-16} {1,9} {2}", name, size, modified); }
Conclusão:
analisando as respostas de listagem do diretório FTP requer manuseio cuidadoso de formatos variados. Embora seja possível uma solução personalizada, é mais confiável utilizar bibliotecas que suportam o comando MLSD moderno. Essa abordagem ou a análise consistente e simplifica a tarefa de extrair metadados de arquivo e diretório relevantes das respostas FTP.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3