유연한 C# 클래스로 FTP 응답 구문 분석
FTP 연결 관리는 특히 다양한 응답 형식을 처리할 때 복잡한 작업이 될 수 있습니다. 이 문제를 해결하기 위해 FtpWebRequest의 ListDirectoryDetails 메서드를 사용할 수 있지만 여전히 응답의 변형을 구문 분석하고 처리해야 할 수 있습니다.
DOS/Windows 스타일 목록 구문 분석
DOS/Windows 형식 목록의 경우 다음을 활용할 수 있습니다. 코드:
string pattern = @"\^(\d+-\d+-\d+\s+\d+:\d+(?:AM|PM))\s+(<DIR>|\d+)\s+(.+)$"; Regex regex = new Regex(pattern); IFormatProvider culture = CultureInfo.GetCultureInfo("en-us"); 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 != "<DIR>") ? long.Parse(s) : 0; string name = match.Groups[3].Value; Console.WriteLine( "{0,-16} size = {1,9} modified = {2}", name, size, modified.ToString("yyyy-MM-dd HH:mm")); }
이 정규식 패턴은 DOS/Windows 스타일의 타임스탬프, 파일/디렉터리 크기 및 이름과 일치합니다.
UNIX 스타일 목록
UNIX 스타일 목록의 경우 FTP용 MLSD 처리에 대한 응답을 참조하는 것이 좋습니다. 디렉터리.
대체 옵션: 최신 MLSD 명령
이상적으로는 MLSD 명령을 활용하여 구조화된 형식으로 디렉터리 목록을 얻을 수 있습니다. 이는 사람이 읽을 수 있는 LIST 형식을 구문 분석하는 것보다 선호됩니다. MLSD는 WinSCP와 같은 많은 타사 라이브러리 및 도구에서 지원됩니다.
결론
FTP 응답 구문 분석은 복잡할 수 있지만 올바른 도구와 기술을 사용하면 다양한 목록 형식을 안정적으로 처리할 수 있습니다. MLSD와 LIST를 모두 지원하는 WinSCP와 같은 포괄적인 도구를 사용하면 FTP 관리 요구 사항에 맞는 더욱 강력하고 확장 가능한 솔루션을 제공할 수 있습니다.
위 내용은 다양한 목록 형식에 대해 C#에서 FTP 응답을 효율적으로 구문 분석하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!