C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[433] 하부 디렉토리와 화일이 있는 디렉토리 지우기
김시환 [godson2] 8176 읽음    2004-07-31 09:26
이번에 프로그램 개발하면서 필요해서 Q&A 에서 찾아 보았는데
한참만에 헤메이다 찾아서 많이 사용하는 팁이라 한번 올려 봅니다.
Q&A 부분에 올려진 것은 화일만 삭제가 되는 지라 조금 수정하였습니다.

void __fastcall DeleteTree(String stDirectory)
{
    WIN32_FIND_DATA   fdFiles;
    HANDLE            hdHandle;
    char              chFileName[256];

    hdHandle = FindFirstFile(((String)stDirectory + "\\*").c_str(), &fdFiles);

    if(hdHandle)
    {
        do
        {
            sprintf(chFileName, "%s\\%s", stDirectory.c_str(), fdFiles.cFileName);
            if(strcmp(fdFiles.cFileName, ".") && strcmp(fdFiles.cFileName, ".."))
            {
                if(fdFiles.dwFileAttributes & FILE_ATTRIBUTE_READONLY)  // Read-Only 파일 처리
                    SetFileAttributes(chFileName, fdFiles.dwFileAttributes & ~FILE_ATTRIBUTE_READONLY);

                if(fdFiles.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
                {
                    DeleteTree(chFileName) ; // 디렉토리면 DeleteTree를 재귀 호출
                    RemoveDir(chFileName) ;  // delete directory
                }
                else DeleteFile(chFileName);
            }
        } while(FindNextFile(hdHandle, &fdFiles));

        FindClose(hdHandle);
        RemoveDir(stDirectory) ;
    }
}
김요한 [phonon]   2004-08-11 16:58 X
그냥 무식하게

c:\>rd -s -q d:\testDir

shellexcute로 날리면 되지 않나요?
김시환 [godson2]   2004-08-11 22:17 X
예 맞습니다. ^^;;
사실 윈도우에서 그냥 디렉토리 통채로 휴지통에 버려도 됩니다.

+ -

관련 글 리스트
433 하부 디렉토리와 화일이 있는 디렉토리 지우기 김시환 8176 2004/07/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.