2009-09-10 2 views
1

Ftp.ListDirectoryDetails 명령의 결과를 구문 분석하려고하는데 FileName과 마지막 수정일이 아닌 디렉터리 만 필요합니다.C#을 사용하여 FTP 서버의 파일 만 마지막으로 수정 한 날짜를 나열합니다.

명령의 반환이 :

"01-21-09 오후 6시 16분의 rattandom" "01-21-09 오후 8시 1분 9900 MYFILE.TXT"

누군가가 방법을 알고 있나요 것은 구문 분석 그것? 내가 읽고 있던 서버가 Windows 또는 Unix라면 다른 것을 반환 할 것이다. 붙여 넣기 한 결과는 Windows 2003 Server의 FTP 용입니다.

답변

4

FTP 목록 결과는 비표준이므로 모든 FTP 서버가 잠재적으로 다른 결과를 반환 할 수 있습니다.

+0

무엇을해야합니까? 보편적 인 구문 분석이 있습니까? – jmpena

+0

사용자가 볼 수있는 모든 가능한 FTP 서버마다 구문 분석이 다릅니다. 원하는 정보를 얻을 수있는 일관된 형식이 없습니다. – Joe

+0

+1 그 사실을 모르지만, 사실이라면 ftp 클라이언트를 구현하는 것이 정말 짜증납니다. – Groo

1

Windows 및 Unix 기반 FTP 서버 모두에서 작동하는 제안 된 규칙적인 예외가 있습니다. this answer을 참조하십시오.

0

당신은 대부분의 UNIX 및 Windows LIST 명령의 응답을 pareses Ftp.dll FTP component을 시도 할 수 있습니다 :

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(); 
} 

이 내가 만든 상용 제품이 있습니다.

관련 문제