C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[809] Indy10 TIdFTP로 서버의 파일목록 정보 얻어오기
xiles [xiles] 8781 읽음    2008-10-06 01:14
Indy9를 이용하다 Indy10으로 옮기면서 삼일간 헤매이다 해결(?)한 것이 있어 저와같이 9를 이용하다 10으로 옮기시려할 때 조금 덜 헤매이시라고 간단히 알아낸 것을 올립니다.

Indy9에서는 FTP에서 서버의 파일목록 정보를 얻어오기 위해서 아래와 같이 사용하면 되었습니다.

IdFTP1->List();
TIdFTPListItems *list = IdFTP1->DirectoryListing;
for(int i = 0; i < list->Count; i++)
{
    ListBox1->Items->Add(list->Items[i]->FileName);
}

그런데 Indy10을 사용하면 위에처럼만 하고 컴파일해보면 컴파일은 잘되지만, 실행해서 실제로 위 코드가 실행되게 하면 파서가 등록되어 있지않다고 파일목록 정보를 얻어오지 못합니다. 엄밀히 말하면 파일목록 정보는 얻어오긴 하지만(ListResult로는 접근 가능: 단순한 텍스트포맷의 리스팅), DirectoryListing(ListResult값을 분석해서 파일명,속성,파일크기 등의 정보로 분리해 TIdFTPListItem들로 만들어놓은) 으로 얻어오지를 못합니다.

Indy10에서는 30여종류의 파서가 만들어져있고, 이를 사용하기 위해서는 아래와 같이 해주면됩니다.
#include <IdFTPListParseUnix.hpp>
#pragma link "IdFTPListParseUnix"

파서는 AS400, HellSoft, Unix, CiscoIOS, OS2, WfFTP 등이 있고 사용하고자하는 파서들을 각각 등록해주면됩니다.

만약 Indy10에서 지원하는 30여개의 파서를 그냥 한꺼번에 등록해서 사용하고 싶다싶으면 아래 두줄만 추가하면 됩니다.
#include <IdAllFTPListParsers.hpp>
#pragma link "IdAllFTPListparsers"

Unix 파서 하나만 추가했을때에 비해서 30개를 한꺼번에 추가시켜보니 실행파일이 약 100KB 가량 늘어나네요.

+ -

관련 글 리스트
809 Indy10 TIdFTP로 서버의 파일목록 정보 얻어오기 xiles 8781 2008/10/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.