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
[52960] Re:opendialog 파일
장성호 [nasilso] 1473 읽음    2008-03-31 17:39
잘하셨는데....
한두군데 실수를.....


1. FindFirst에서..  File의 경로를 주셨는데...
   파일의 경로뿐만 아니라 name  mask도 같이 붙여서 넘겨줘야 합니다.

    C:\\Temp\\폴더에 모든 file을 보려면?

   FindFirst("C:\\Temp\\*.*", ....); // ==> 이런식으로..

2. 그리고 두번째 파라메타로 faReadOnly 를 주셨는데...
    파일속성이 ReadOnly인 파일만 가져오겠다는 뜻이겠죠
    대게 파일만 가져올때는 faArchive 로 설정합니다.   
     FindFirst(File_Path,  faArchive , sr);

3. 마지막으로  Find한 결과는 ... TSearchRec 인 sr에 있습니다.
    즉 ListView에 Item의 Caption을 넣을때는 sr.***이렇게 해야되죠..
     ListItem->Caption = ExtractFileName(sr.Name);


그럼..

  

아자! 님이 쓰신 글 :
: 어떤 특정 폴더를 열면 거기에 있는 모든 파일을 리스트뷰에 파일명만 보이게 하려고 합니다.
: 오픈다이얼로그를 사용해서 하나의 파일을 선택할 경우는 파일이 있는 위치도 , 파일명도 표기가 잘되는데요.
:
: 만약 선택한 폴더에 있는 파일을 전부다 리스트뷰에 추가하려면 어떻게 해야하죠?
:
: finefirst를 찾아봣는데 리스트가 전혀 되질 않네요.
:
: TListItem *ListItem;
:     TSearchRec sr;
:
:     if(Form1->OpenDialog1->Execute())
:     {
:         File_Name = ExtractFileName(Form1->OpenDialog1->FileName);
:         File_Path = ExtractFilePath(Form1->OpenDialog1->FileName);
:         File_Open = File_Path + File_Name;
:
:        /* Form1->ListView1->Items->BeginUpdate();
:         ListItem =  Form1->ListView1->Items->Add();
:         ListItem->Caption = ExtractFileName(File_Path);
:         ListItem->SubItems->Add(File_Name);
:
:         ListItem->SubItems->Add(File_Path);
:        */
:        if(FindFirst(File_Path,  faReadOnly   , sr) == 0) //찾는 파일이 있으면..
:         {
:             do{
:                  ListItem =  Form1->ListView1->Items->Add();
:                  ListItem->Caption = ExtractFileName(File_Path);
:                  ListItem->SubItems->Add(File_Name);
:             }while(FindNext(sr) == 0); //다음 파일로...다음찾은 파일이 없을때까지 반복
:         }
:         FindClose(sr); //찾기 종료..
:         Form1->ListView1->Items->EndUpdate();
:
: 현재 이런식으로 하였습니다.
: 다른방법이나 조언 부탁드립니다.

+ -

관련 글 리스트
52959 opendialog 파일 아자! 1116 2008/03/31
52960     Re:opendialog 파일 장성호 1473 2008/03/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.