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

C++빌더 자료실
C++Builder Programming Resources
[217] [소스] 디렉토리 서비스 클래스 입니다
Poichel [poichel] 9619 읽음    2003-05-20 15:41
시간 남아서 또 하나 올려봅니다
이건 좀 길다란 소스라 수정해서 사용하기엔 좀 무리가 있을것 같지만....
디렉토리 관련 작업에 유용한 기능을 제공해 주는
DirectoryService라는 클래스 소스 입니다
 
기본기능은 디렉토리 검색, 삭제, 생성 그리고 하부디렉토리규칙 검사 등 입니다
추가로 디렉토리 파일 동기화용 공용함수가 일부 추가되어 있습니다
나중에 디렉토리 동기화 소스도 올리도록 하겠습니다
 
이 소스는 역사가 좀 깊은데 중간에 파일필터 클래스를 포함시켜 만들었습니다
따라서 이 소스를 사용하시려면 밑에올린 파일필터 클래스를 포함시켜야 합니다
 
간단한 사용법은 파일내에 포함된 프로젝트를 열어보시면 아실수 있습니다
 
아래는 공용영역 리스트 입니다
 
    /******** Internal Filter Control ********/
    bool                    ActiveFilter;
    InternalFilterControl   Filter;
    bool                    ExceptLockFile;
    /*****************************************/
    bool __fastcall SetScanDirectory( char *DirPath );
    bool __fastcall SetNextDirectory( void );
    bool __fastcall SetNextDirectory( char *GetFullPath, char *GetShortPath, short *DirIndex );
    bool __fastcall GetNextFileInfo( LPOBJECTINFO LPInfo );
    void __fastcall FindInitialize( void );
    bool __fastcall Find( LPOBJECTINFO LPInfo );
    bool __fastcall GetFindException( LPOBJECTINFO LPInfo ); // 디렉토리 정보 포함
//  bool __fastcall FindConditionFirst( LPFINDCONDITION Condition, LPOBJECTINFO LPInfo );
//  bool __fastcall FindConditionNext( LPOBJECTINFO LPInfo );
    bool __fastcall CreateMultiDirectory( char* FullDirecotryPath );
    bool __fastcall RemoveDirectory( char *DirPath, LPDWORD DeleteDirCount = NULL, LPDWORD DeleteFileCount = NULL );
    bool __fastcall CheckExclusionSubDirecotryRule( const char* SourceDirectory, const char* DestinationDirectory );
 
윽..... 확인해보니 StringPaster란 엉뚱한 함수도 사용되고 있습니다
함께 첨부합니다
 
역시 보시고 개선부분이나 문제점 있으면 알려주시면 감사드리겠습니다
즐프하세요
 
P.S1 중요사항 RemoveDirectory 사용은 조심하세요 잘못하면 다 날아갑니다 조심 
P.S2 검색 속도에 상당히 신경을 썼는데요 기본적으로 현재 쓰기중인 파일은
스캔되지 않습니다. 대신 속도가 많이 느려지네요 파일활성화 핸들 확인법을 몰라
좀 무식하게 구현했거든요. 개선방법 아시면 좀 알려주세요^^;
공용 변수 ExceptLockFile를 false로 설정해 주시면 속도는 빨라집니다 참고해주세요


+ -

관련 글 리스트
217 [소스] 디렉토리 서비스 클래스 입니다 Poichel 9619 2003/05/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.