C#에서 WebRequestMethods.Ftp.ListDirectoryDetails FTP 응답 구문 분석
FtpWebRequest.ListDirectoryDetails 메서드를 사용하면 다음의 파일 및 디렉터리에 대한 자세한 정보를 검색할 수 있습니다. FTP 서버. 그러나 다양한 FTP 서버에서 사용되는 다양한 형식으로 인해 이 방법의 응답을 구문 분석하는 것이 어려울 수 있습니다.
다양한 응답 형식에 대한 사용자 지정 구문 분석
응답을 구문 분석하려면 다양한 형식을 처리하는 사용자 지정 C# 클래스를 원활하게 만들 수 있습니다. 예:
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); } }
기계 판독 가능 응답이 포함된 최신 FTP 클라이언트 사용
그러나 MLSD 명령을 지원하는 FTP 클라이언트를 사용하는 것이 좋습니다. 이는 기계가 읽을 수 있는 형식으로 디렉토리 목록을 반환합니다. 사람이 읽을 수 있는 LIST 명령 응답을 구문 분석하는 것은 MLSD를 지원하지 않는 오래된 서버의 최후의 수단이어야 합니다.
WinSCP .NET과 같은 타사 라이브러리는 MLSD 및 사람이 읽을 수 있는 다양한 지원을 통해 FTP 클라이언트 기능을 제공합니다. 목록 형식. 이는 FTP 디렉토리 목록 구문 분석 프로세스를 단순화합니다.
타사 라이브러리 사용의 이점
위 내용은 C#에서 FTP 디렉터리 목록을 효율적으로 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!