|
선택한 폴더안에 있는 모든 파일의 정보를 표시하려고 하거든여..
선택한 폴더의 하위 폴더에 있는 파일까지 모조리 다여...
//폴더 추가 버튼..
void __fastcall TForm1::ButtonClick(TObject *Sender)
{
//추가할 다이얼로그를 띄운다.
Path = "C:";
if(SelectDirectory("폴더를 선택하세요.", "", Path))
Path = Path + "\\";
ListView1->Clear();
AddFoler();
}
//---------------------------------------------------------------------------
//폴더추가 함수.
void TForm1::AddFoler()
{
TSearchRec sr;
TListItem *NewItem;
if(FindFirst(Path + "*.*", faAnyFile, sr) == 0){
do{
//검색했을때 "." ".." 는 빼고...
if(sr.Name != "."){
if(sr.Name != ".."){
//하위폴더인지 구별..
if(sr.Size == 0){
Path = Path + sr.Name + "\\";
AddFoler();
}
//하위폴더를 제외한 파일들을 추가..
else{
NewItem = ListView1->Items->Add();
NewItem->Caption = sr.Name;
NewItem->SubItems->Add(sr.Size);
NewItem->SubItems->Add(FileDateToDateTime(sr.Time));
}
}
}
}while(FindNext(sr) == 0);
}FindClose(sr);
}//폴더추가 다이얼로그 if..
이렇게 했는데...
하위 폴더에 있는 파일도 추가가 되긴 하는데...가장 앞의...그러니까...
AAA ------------선택한 폴더
|----------|----------|
BBB CCC DDD
|--|--| |--|---| |--|--|
E F G H I J K L M
이런식이면...BBB에 E안에 있는 파일까지는 읽어 오는데 그다음 BBB에 F부터는 안되더라고요...
그래서 Path에 어떤값이 있나 찍어봤더니 AAA\BBB\E\F\G....이런식으로 그냥 다음 경로가 수정이 되는게 아니고 추가가 되어서요...
이걸 어떻게 처리해야 할까요...알려주세요~~ㅠ.ㅠ
|