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
[27457] Re:Re:zipbuilder 사용에 대해서..
현정환 [raisins] 1149 읽음    2003-10-09 16:03
zip1.jpg 20.6KB 익셉션 내용
하느림님 답글 감사합니다.
더 궁금한게 있어서 다시 답글을 달았었는데 그 놈을 클릭하면 자꾸 다른 글로 링크가 되서
다시 올립니다..

제가 뭘 잘못했는지 모르겠는데..
z_name 이 a.zip 이라고 가정하면..

a.zip 이란 파일이 존재하고 있으면 에러가 안 나는데..
a.zip 이 없으면 익셉션이 발생됩니다..
하느리 님 답글에는 z_name 의 파일이 있으면 지워버리는데..
제 경우는 그렇게 하면 첨부파일의 익셉션이 발생됩니다..
뭐가 잘못된 걸까요...



하느리 님이 쓰신 글 :
: 제가 옛날에 만들어 두었던 건데, 쓸모가 있을 지 모르겠네요.
:
: 1. ZipBuilder와 관련 파일처리
: //---------------------------------------------------------------------------
: // 압축하기
: // 하나의 압축파일에 여러개의 파일을 압축시킴
: // z_name : 압축할 파일명
: // t_name : 압축대상 파일명 (DOS의 *, ? 를 포함 가능)
: void __fastcall Form1::ZipFile (String &z_name, String &t_name)
: {
:   if ( FileExists (z_name) )  DeleteFile (z_name);
:
:     Zip->ZipFilename  = z_name;  //Zip은 ZipBuilder Component
:     Zip->Verbose      = true;
:
:     // Add as many filespecs as we want to:
:     // (MS-DOS Wildcards are OK)
:     Zip->FSpecArgs->Add (t_name);
:
:     // Set the AddOptions; these also appear in Property Inspector:
:     // NOTE: This is the new "set" syntax
:     Zip->AddOptions = Zip->AddOptions << AddHiddenFiles;
:     Zip->AddOptions = Zip->AddOptions >> AddEncrypt; // no password
:     Zip->Add ();  // do it!
: }
: //---------------------------------------------------------------------------
: // 하나의 파일 압축 풀기
: // z_name : 압축파일명
: // t_name : 압축해제 대상 파일명 (DOS용 *, ? 사용가능)
: //          전체인 경우는 "*.*"
: void __fastcall Form1::UnzipFile (String &z_name, String &t_name)
: {
:   if ( ! FileExists (z_name) )  return;
:
:   Zip->ZipFilename  = z_name;
:   Zip->Verbose      = true;
:
:     // We can specify as many filespecs as we want to extract:
:     // (MS-DOS Wildcards are OK)
:   Zip->FSpecArgs->Add (t_name);
:
:     // Set the ExtrOptions; these also appear in Property Inspector:
:     Zip->ExtrOptions = Zip->ExtrOptions << ExtrOverWrite;
:     Zip->Extract ();  // do it!
: }
: //---------------------------------------------------------------------------
: 2. 메모리 상에서 ZipBuilder 이용하기
: // 스트림 압축
: // TZipBuilder *Zip : ZipBuilder Component
: // TMemoryStream *zip_stream : 압축하고자 하는 스트림
: // TMemoryStream *ziped_stream : 압축된 스트림
:     zip_stream->Position = 0;
:     Zip->AddStreamToStream (zip_stream); // zip_stream을 추가하면, 압축된 스트림이 ZipBuilder 컴포넌트 내의 멤버 ZipStream에 저장됨
:     ziped_stream->Clear ();
:     ziped_stream->LoadFromStream (Zip->ZipStream);
:
: // 스트림 압축해제
: // TMemoryStream *ziped_stream : 압축된 스트림
: // TMemoryStream *unzip_stream : 압축해제된 스트림
:   ziped_stream->Position = 0;
:   Zip->ExtractStreamToStream (ziped_stream);     // 압축해제하면, ZipStream에 압축해제된 스트림 존재함
:   unzip_stream->Clear ();
:   unzip_stream->LoadFromStream (Zip->ZipStream);
:
:
: 일단 위에 거는 참조하시고요.
: 원하시는 기능이 없는 파일을 메모리상에서 생성해서 압축하고자 한다면 TFileStream을 이용하면 됩니다.
: 위의 예에서 TMemoryStream 대신에 TFileStream을 하시면 되져 (ziped_stream, unzip_stream을 이야기하는 것입니다.).
:
:
:
: 현정환 님이 쓰신 글 :
: : 안녕하세요..
: :
: : zipbuilder 를 사용하려고 합니다..
: :
: : 예를 들어서 aaa.txt 라는 놈이 있고..
: :
: : 이 파일을 aaa.zip 에 압축을 하고 싶습니다.
: :
: : ZipBuilder1->ZipFileName = "aaa.zip" 이라고 주면..
: :
: : aaa.zip 이 원래 있는 파일일 경우는 상관 없는데
: :
: : 없는 파일이면 에러가 뜹니다.
: :
: : 제가 궁금한건 원래 없는 파일을 생성해서 압축을 하려면 어떻게 해야 하죠 ..?

+ -

관련 글 리스트
27450 zipbuilder 사용에 대해서.. 현정환 833 2003/10/09
27451     Re:zipbuilder 사용에 대해서.. 하느리 2378 2003/10/09
27457         Re:Re:zipbuilder 사용에 대해서.. 현정환 1149 2003/10/09
33611             Re:Re:Re:zipbuilder 사용에 대해서.. 하느리 976 2003/10/09
33610             Re:Re:Re:zipbuilder 사용에 대해서.. 하느리 973 2003/10/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.