|
잘하셨는데....
한두군데 실수를.....
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();
:
: 현재 이런식으로 하였습니다.
: 다른방법이나 조언 부탁드립니다.
|