|
빌더 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 연결해서 파일 열람에선 재귀함수가 제대로 적용이 안되는거 같더라구요
위 소스는 해당 폴더에 있는 파일들만 다운받는 소스입니다. 하위폴더는 무시하고 말이죠
재귀함수 사용해서 적용한다고 해봤는데 제대로 안되서 다 빼버렸습니다.
많은 조언좀 부탁드리겠습니다. (__)
|