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
[75761] Re:Re:Re:폴더개수 구해서 일정 개수 삭제하는 방법이 있나요?
정성훈.해미 [sage5nor] 2277 읽음    2020-01-29 10:30
어렵게 접근하시네요 ^^*

간단하게 만들어 봤습니다.

int FileCount = 0;
int DirCount  = 0;

TSearchRec sr;
if(FindFirst(AppCfg->AppPath + "*.*", faAnyFile, sr) == 0)	{
	try	{
		do	{
			if(sr.Name != "." && sr.Name != "..")	{
				if(sr.Attr & faDirectory)   DirCount++;
				else                        FileCount++;
			}
		} while(FindNext(sr) == 0);
	}
	__finally   {
		FindClose(sr);
	}
}


LDI 님이 쓰신 글 :
: 폴더 삭제하는 부분 감사합니다!!! 근데 파일갯수 구하는것처럼 폴더 갯수 구해보려는데 안되는데 좋은 방법 있을까요?
:
: String fsrPath = "경로"
: int CntFound = FindFirst(fsrPath, faArchive, FCsr);
: int Found = FindFirst(fsrPath, faArchive, Fsr);
: int FolderTotal, FolderDelete;
:
: int Count = 0;
: while(CntFound == 0)    // 파일 개수 찾는 반복문
: {
:    ++Count;
:    CntFound = FindNext(FCsr);
: }
:
: 이렇게해서 파일 개수 찾는데 폴더를 찾으려고 경로랑 이런거 바꿧는데 안되더라구요...
:
: 정성훈.해미 님이 쓰신 글 :
: : 폴더 갯수는 파일 갯수 구하는 거랑 같은 방법으로 구했을 것이고
: : 아마 폴더 삭제 부분이 잘 안되실 거 같습니다.
: :
: : 폴더를 지우는 함수가
: : 빈 폴더일 때만 지워집니다.
: : 폴더 안에 파일 또는 하위 폴더가 있으면 안 지워집니다.
: :
: : 빈 폴더가 아니더라도 삭제하는 함수를 만들어서 사용해 보세요.
: :
: :
: : 혹시나 도움이 되실까 해서
: : 제가 만들어서 쓰는 함수를 적어 드립니다.
: : 고급스럽진 않지만 그래도 쓸만 합니다.
: :
: :
: :
: : // 지정한 날짜시간보다 오래된 파일, 폴더 모두 지우기
: : 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 님이 쓰신 글 :
: : : 파일같은 경우에는 제가 설정한 개수를 넘으면 자동으로 몇개씩 삭제 되게 해놧는데
: : :
: : : 폴더도 비슷하게 짜봣더니 좀 다르게 해야하는지 안되네요.
: : :
: : : 혹시 폴더 개수를 확인하는법이 있을까요?
: : :
: : : 파일처럼 똑같이 설정 폴더개수를 넘으면 자동으로 폴더 몇개씩 삭제되게 하려하는데
: : :
: : : 도움주시면 감사하겠습니다.

+ -

관련 글 리스트
75758 폴더개수 구해서 일정 개수 삭제하는 방법이 있나요? LDI 2004 2020/01/29
75759     Re:폴더개수 구해서 일정 개수 삭제하는 방법이 있나요? 정성훈.해미 2181 2020/01/29
75760         Re:Re:폴더개수 구해서 일정 개수 삭제하는 방법이 있나요? LDI 2103 2020/01/29
75761             Re:Re:Re:폴더개수 구해서 일정 개수 삭제하는 방법이 있나요? 정성훈.해미 2277 2020/01/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.