Q&A

  • DirectoryListBox에서 선택한 디렉토리의 서브디렉토리를 CheckListBox
안녕하세요

DirectoryListBox에서 선택한 디렉토리의 서브디렉토리를 CheckListBox에 모두 나타내는 방법 좀 알여주세요

좋은 방법이 있으면 더욱 좋구요.

급합니다.





1  COMMENTS
  • Profile
    구창민 1999.12.08 21:12
    김성진 wrote:

    > 안녕하세요

    > DirectoryListBox에서 선택한 디렉토리의 서브디렉토리를 CheckListBox에 모두 나타내는 방법 좀 알여주세요

    > 좋은 방법이 있으면 더욱 좋구요.

    > 급합니다.

    >

    >





    아래 예제는 예전에 제가 만들어 사용하던 것입니다.

    특정 디렉토리명을 인자로 전해주면 재귀호출을 하며 그 디렉토리의

    하부 디렉토리와 파일을 모두 목록으로 구성해 주는 함수입니다.

    저는 ListBox에서 구성되도록 해 두었으며,

    목록으로 구성될때 파일은 앞에 'F'가 붙고,

    디렉토리는 'D'가 붙도록 만들어 두었습니다.



    성진님이 그냥 디렉토리 목록만 구하시길 원하면 고부분은 없애버리시고,

    CheckListBox로 옮기도록 조금만 수정하시면 가능할겁니다.



    그럼.. 즐거운 프로그래밍 하시길~



    procedure TMainForm.SearchDirectory(dir : string);

    var Searchrec : TSearchrec;

    i : integer;

    st : string ; //경로조립할 문자열

    begin

    st := dir + '*.*';

    FindFirst(st, faAnyFile, SearchRec);

    i := 0;



    while i = 0 do

    begin

    if (Searchrec.Name = '.') or (Searchrec.Name = '..') then

    begin

    i := FindNext(SearchRec); //다음 디렉토리, 화일을 찾음

    Continue;

    end;



    if DirectoryExists(dir + '' + SearchRec.Name) then //찾은게 디렉토리면..

    begin

    st := dir + '' + Searchrec.Name;

    ListBox1.Items.Add('D*'+st );

    SearchDirectory(st);

    i := FindNext(Searchrec);

    Continue;

    end;



    //찾은게 파일일 경우..

    st := dir + '' + SearchRec.Name;

    ListBox1.Items.Add('F*'+st);

    i := FindNext(SearchRec);

    end;



    end;