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
[13801] Re:ftp 디렉에서 폴더 뒤지기..? 그리고 재귀 호출?
방태윤 [] 1125 읽음    2001-12-20 23:20
재귀호출도 가능하겠고 push-pop 알고리즘(?)을 사용하시면 될듯합니다.
우연잖게 바로위 답글에 제가 해논 push-pop 이 있군요.^^

재귀호출을 하신다면
void test(AnsiString path,int nn)
{
  if(nn>1000) return; //너무많은 호출이있으면(깊이) stack overflow 가 일어날지 모르니까...
  path 에대한 화일 읽고 처리
  int n=path에 있는 서브디렉토리 갯수
  for(int i=0;i<n;i++){
    test(찾은서브디렉토리[i],nn+1);
  }  
}
void go()
{
  test(루트디렉토리,0);
}
이렇게 하면 될듯합니다.(태스트없이 그냥 쓴것임)

push-pop으로 한다면
void go()
{
  push("루트디렉토리");

  while(true){
    path=pop() // 최근의 한개의 디렉토리를 꺼내온다,
    까내올게 없다면 break;
    path 에대한 화일 읽고 처리
    int n=path에 있는 서브디렉토리 갯수
    for(int i=0;i<n;i++){
      push(찾은서브디렉토리[i]);
    }  
  }
}
push-pop는 다들 아시겠지만 TStringList 를 사용하면 되겠군요
push 는 리스트에 제일 마지막에 넣는거고
pop 은 제일 마지막에 넣은걸 빼오는 겁니다.


모라 님이 쓰신 글 :
: ftp에 접속 안에 폴더를 일일이 들어가면서
:
: 화일의 유무의 정보를 화일로 저장 할려고 합니다.
:
: 근데 화일로 저장 한다는건 나중 문제이고...
:
: 아시다시피 디렉이 트리구조인데 어떻게 일일이 다 들어가 볼수가 있죠?
:
: 막상 쉽다고 생각했는데 어렵네요.
:
: 재귀호출을 이용하면 될 것 같은데 답답하네요.
:
: 도움을 바랍니다 :-)

+ -

관련 글 리스트
13783 ftp 디렉에서 폴더 뒤지기..? 그리고 재귀 호출? 모라 792 2001/12/20
13801     Re:ftp 디렉에서 폴더 뒤지기..? 그리고 재귀 호출? 방태윤 1125 2001/12/20
13803         Re:ftp 디렉에서 폴더 뒤지기..? 그리고 재귀 호출? 모라 803 2001/12/21
13785     Re:ftp 디렉에서 폴더 뒤지기..? 그리고 재귀 호출? 이경문 928 2001/12/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.