|
서브디렉토리들까지 주욱 스캔하는 예제에 대한 질문이 가끔씩 올라오는 것 같아 하나 만들어봤습니다.
recursive로 디렉토리를 스캔해서 Memo에 붙이는 예제입니다.
Memo에 add하는 부분을 파일을 이동하는 것으로 수정해 보세요.
그럼 원하는 것을 얻을 수 있습니다.
참고로 아시겠지만 디렉토리를 삭제할 때는 안에 있는 파일부터 지워야합니다.
void __fastcall TForm1::DirRecursiveScan(String path)
{
try
{
if(String(path.AnsiLastChar()) != "\\") path += "\\";
String fpath;
TSearchRec sr;
int Found = FindFirst(path + "*.*", faArchive | faDirectory, sr);
while(Found == 0)
{
fpath = path + sr.Name;
if(*sr.Name.c_str() != '.')
{
if(DirectoryExists(fpath)) DirRecursiveScan(fpath);
else Memo1->Lines->Add(fpath);
}
Found = FindNext(sr);
}
FindClose(sr);
}
catch(Exception *e)
{
throw e;
}
}
초행길 님이 쓰신 글 :
: 안녕하세요...
: 이곳에서 여러 고수님들의 도움을 받아 느즈막한 나이에 빌더로 밥 먹고 살아가고 있습니다.
: 저는 업무용 데이타베이스 프로그램을 짜고 있습니다.
: 엑세스 MDB 를 이용하고 있고, 화일 서버는 XP 로 단순히 공유 디렉토리에 데이타를 모으고 있습니다. 데이타 디렉토리 아래로 날짜별 디렉토리를 생성하여 매일 단위로 백업을 처리하였습니다.
: 그런데, 보안상의 이유로 공유되지 않은 다른 디렉토리에 데이타를 이동시켜야 하는 일이 발생하였습니다.
:
: 단순히 노가다로 화일 하나하나를 복사하고 지우는 방법으로 처리하려니 너무 무식한 방법 같아서
: DOS 시절처럼 디렉토리 카피나 디렉토리 무브, 디렉토리 삭제등의 어떤 방법이 있을 듯 한데,
: 이곳 게시판과 제가 가지고 있는 빌더 책 두권을 뒤져봐도(핼프화일도 뒤져봤지만) 도무지 그에 관련된 팁 조차 찾지를 못 하고 있습니다.
:
: 바쁘신 시간이겠지만 고수님들의 도움을 부탁드립니다.
:
: 감사합니다.
|