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

C++빌더 Q&A
C++Builder Programming Q&A
[45895] FTP 파일 리스트 받아오기
하늘꾸미 [skymaker] 3334 읽음    2006-07-28 10:33
빌더 5.0 사용중인데요

별도의 컴포넌트를 사용하지 않고 FTP 함수로 접속 및 파일리스트를 가져오는 프로그램을 작성했는데요

예를들어 FTP 대상 컴퓨터 폴더 구조가 아래와 같을경우

root
└ [Folder1]
          ├ [Folder1-1]
          │         └ File1-1
          ├ File1
          └ File2

위와 같다고 예를 들면요

FTP로 [Folder1]에 접속해서 해당폴더에 파일들을 전부 다운받으면

File1,File2만 다운받게되더라구요

전 하위폴더와 그하위폴더에 포함된 파일도 전부 받고싶은데 말이죠 (하위폴더가 존재하는데로 전부다)

간단히 파일 검색하는 소스를 보여드리자면

FtpEnumFiles(AnsiString asFolderName)
{
  WIN32_FIND_DATA wfd;
  BOOL bResult=TRUE;
  HINTERNET hFind;
  AnsiString asFname = "";
 
    // Directory 변경
    if (FtpSetCurrentDirectory(hFtp,asFolderName.c_str())==false) {
        ShowMessage("디렉토리 변경 실패");
        return;
    }

    // 파일 목록 출력
    hFind=FtpFindFirstFile(hFtp,"*.*",&wfd,0,0);
    if (hFind!=NULL) {
        while (bResult) {
            if (bResult==TRUE) {
                asFname = wfd.cFileName;                // 파일명
                FileDownLoad(asFolderName, asFname);        //파일 다운로드 함수호출
            }
            bResult=InternetFindNextFile(hFind,&wfd);
        }
        InternetCloseHandle(hFind);
    }
}

보통 로컬컴퓨터에 파일을 열람할땐 재귀함수를 사용해서 서브폴더에 내용까지 전부 볼수 있는거 같던데

FTP 연결해서 파일 열람에선 재귀함수가 제대로 적용이 안되는거 같더라구요

위 소스는 해당 폴더에 있는 파일들만 다운받는 소스입니다. 하위폴더는 무시하고 말이죠

재귀함수 사용해서 적용한다고 해봤는데 제대로 안되서 다 빼버렸습니다.

많은 조언좀 부탁드리겠습니다. (__)

+ -

관련 글 리스트
45895 FTP 파일 리스트 받아오기 하늘꾸미 3334 2006/07/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.