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
[41297] Memo에 디렉토리 및 파일 뿌리기 ;;
프리지아 [gurakus] 944 읽음    2005-08-02 17:41
포럼 참고해서 만들어 봤습니다.
나름대로 잘 돌아가는데...
상위 디렉토리나 파일과 하위디렉토리 파일간에 구분이 안가네요 ^^;;
[DIR]windows
                    [DIR] Program Files
                                         [DIR]Alzip
                                                         [DIR]Temp                       
                                                         Alzip.exe
[DIR]Program Files

이런식으로 탭키로 구분을 해주거나
아님 Memo말고 TreeView같은걸로 더 쉽게 해줄 방법이 없을까요?




void __fastcall TForm1::GetDirView(AnsiString Dir)
{
        TSearchRec sr;
        int iAttributes = 0;
        AnsiString iDir; //GetDirView()내에서만 사용할 패스변수 선언

        iAttributes |= faReadOnly * 0; //파일 옵션
        iAttributes |= faHidden * 0;
        iAttributes |= faSysFile * 0;
        iAttributes |= faVolumeID * 0;
        iAttributes |= faDirectory * 0;
        iAttributes |= faArchive * 0;
        iAttributes |= faAnyFile * 1;

        iDir = Dir; //인자로 받아온 패스를 iDir에 저장
        int len=iDir.Length();
        if(iDir[len]=='\\')   //iDir의 마지막 문자가 '\\'인지 아닌지
                iDir += "*.*";
        else
                iDir += "\\*.*";


        if (FindFirst(iDir, iAttributes, sr) == 0) //찾는 파일이 있으면..
        {
                do{
                        if ((sr.Attr & faDirectory) == 0)//찾은 파일이 디렉토리가 아니면..
                                Memo1->Lines->Add(sr.Name);
                        else{
                                if (sr.Name != "." && sr.Name != ".."){ // ".", ".." 두 디렉토리는 출력에서 제외시킴
                                        Memo1->Lines->Add("[DIR]  "+sr.Name);
                                        AnsiString subDir;
                                        subDir = Dir;
                                        subDir += sr.Name;
                                        GetDirView(subDir+"\\");
                                }
                        }
                }while(FindNext(sr) == 0); //다음 파일찾기, 다음찾은 파일이 없을때까지 do-while문 반복
        }
        FindClose(sr);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        Memo1->Clear();
        GetDirView("D:\\");
}
//---------------------------------------------------------------------------

+ -

관련 글 리스트
41297 Memo에 디렉토리 및 파일 뿌리기 ;; 프리지아 944 2005/08/02
41298     Re:Memo에 디렉토리 및 파일 뿌리기 ;; 유영인 Cuperido 1127 2005/08/02
41302         Re:Re:감사합니다 ^^ 프리지아 709 2005/08/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.