폴더 갯수는 파일 갯수 구하는 거랑 같은 방법으로 구했을 것이고
아마 폴더 삭제 부분이 잘 안되실 거 같습니다.
폴더를 지우는 함수가
빈 폴더일 때만 지워집니다.
폴더 안에 파일 또는 하위 폴더가 있으면 안 지워집니다.
빈 폴더가 아니더라도 삭제하는 함수를 만들어서 사용해 보세요.
혹시나 도움이 되실까 해서
제가 만들어서 쓰는 함수를 적어 드립니다.
고급스럽진 않지만 그래도 쓸만 합니다.
// 지정한 날짜시간보다 오래된 파일, 폴더 모두 지우기
void DeleteFiles(String APath, TDateTime ADT/* = Now()*/, bool ADelSubDir/* = true*/)
{
if(APath.IsEmpty()) return;
TSearchRec sr;
if(FindFirst(APath + "*.*", faAnyFile, sr) == 0) {
try {
do {
if(sr.Name != "." && sr.Name != "..") {
// 폴더일 때
if(sr.Attr & faDirectory) {
String SubPath = APath + "\\" + sr.Name + "\\";
// 폴더 안의 파일 지우기(재귀호출)
DeleteFiles(SubPath, ADT, ADelSubDir);
// 하위폴더 지우기 옵션시 하위 폴더 지우기
if(ADelSubDir) RemoveDir(SubPath);
}
// 파일이 지정한 날짜시간보다 오래된 파일이면 지움
else if(sr.TimeStamp < ADT) DeleteFile(APath + "\\" + sr.Name);
}
} while(FindNext(sr) == 0);
}
__finally {
FindClose(sr);
}
}
}
LDI 님이 쓰신 글 :
: 파일같은 경우에는 제가 설정한 개수를 넘으면 자동으로 몇개씩 삭제 되게 해놧는데
:
: 폴더도 비슷하게 짜봣더니 좀 다르게 해야하는지 안되네요.
:
: 혹시 폴더 개수를 확인하는법이 있을까요?
:
: 파일처럼 똑같이 설정 폴더개수를 넘으면 자동으로 폴더 몇개씩 삭제되게 하려하는데
:
: 도움주시면 감사하겠습니다.
|