7zip plugin Api
This API use the 7-zip dll (7z.dll) to read and write all 7-zip supported archive formats..
Reading archive:
Extract to path: with CreateInArchive(CLSID_CFormatZip) do begin
OpenFile('c:\test.zip');
ExtractTo('c:\test');
end;
Get file list: with CreateInArchive(CLSID_CFormatZip) do
begin
OpenFile('c:\test.7z');
for i := 0 to NumberOfItems - 1 do
if not ItemIsFolder[i] then
Writeln(ItemPath[i]);
end;
Extract to stream with CreateInArchive(CLSID_CFormat7z) do
begin
OpenFile('c:\test.7z');
for i := 0 to NumberOfItems - 1 do
if not ItemIsFolder[i] then
ExtractItem(i, stream, false);
end;
Extract “n” Itemsfunction GetStreamCallBack(sender: Pointer; index: Cardinal;
var outStream: ISequentialOutStream): HRESULT; stdcall;
begin
case index of ...
outStream := T7zStream.Create(aStream, soReference);
Result := S_OK;
end;
procedure TMainForm.ExtractClick(Sender: TObject);
var
i: integer;
items: array[0..2] of Cardinal;
begin
with CreateInArchive(CLSID_CFormat7z) do
begin
OpenFile('c:\test.7z');
// items must be sorted by index!
A items[0] := 0;
items[1] := 1;
items[2] := 2;
ExtractItems(@items, Length(items), false, nil, GetStreamCallBack);
end;
end;
Open stream with CreateInArchive(CLSID_CFormatZip) do
begin
OpenStream(T7zStream.Create(TFileStream.Create('c:\test.zip', fmOpenRead), soOwned));
OpenStream(aStream, soReference);
...
end;
Progress bar function ProgressCallback(sender: Pointer; total: boolean; value: int64): HRESULT; stdcall;
begin
if total then
Mainform.ProgressBar.Max := value else
Mainform.ProgressBar.Position := value;
Result := S_OK;
end;
procedure TMainForm.ExtractClick(Sender: TObject);
begin
with CreateInArchive(CLSID_CFormatZip) do begin
OpenFile('c:\test.zip');
SetProgressCallback(nil, ProgressCallback);
...
end;
end;
Password function PasswordCallback(sender: Pointer; var password: WideString): HRESULT; stdcall;
begin
// call a dialog box ...
password := 'password';
Result := S_OK;
end;
procedure TMainForm.ExtractClick(Sender: TObject);
begin
with CreateInArchive(CLSID_CFormatZip) do begin // using callback
SetPasswordCallback(nil, PasswordCallback);
// or setting password directly
SetPassword('password');
OpenFile('c:\test.zip');
...
end;
end;
Writing archive procedure TMainForm.ExtractAllClick(Sender: TObject);
var
Arch: I7zOutArchive;
begin
Arch := CreateOutArchive(CLSID_CFormat7z);
// add a file
Arch.AddFile('c:\test.bin', 'folder\test.bin');
// add files using willcards and recursive search
Arch.AddFiles('c:\test', 'folder', '*.pas;*.dfm', true);
// add a stream
Arch.AddStream(aStream, soReference, faArchive, CurrentFileTime, CurrentFileTime, 'folder\test.bin', false, false);
// compression level
SetCompressionLevel(Arch, 5);
// compression method if <> LZMA
SevenZipSetCompressionMethod(Arch, m7BZip2);
// add a progress bar ...
Arch.SetProgressCallback(...);
// set a password if necessary
Arch.SetPassword('password');
// Save to file
Arch.SaveToFile('c:\test.zip');
// or a stream
Arch.SaveToStream(aStream);
end;
http://www.progdigy.com/?page_id=13
글타래
-
▼
2009
(71)
-
▼
6월
(44)
- 윤아아빠,전자담배 에바코 참고~
- usb 로 xp 설치
- ML115 서버 및 구닥다리 M925보드 업글용 백업메모
- g304와 g300p를 팔고 N5004를 질러...??
- 은행 인터넷뱅킹시 짜증나는 잡동사니 ActiveX 악성 보안툴들
- 전자담배 에바코 에바,연기적을때 응급조치요령
- 전자담배, 건강에 덜 해롭다? 안전성 검증 시급
- 진짜 같은 '전자담배'. 효과도 OK?
- 게임 개발자 중에서 서버개발이랑 클라이언트 개발 차이점은 뭔가요?
- 언제부턴가 인터넷 접속 모니터링 당하고 있다
- 아,고민되네 서버 프로그래밍 구성기술은 뭘로하지?...
- Win32 IOCP를 따라잡을 Unix, Linux, *BSD계열의 방법은?
- 프로그래머가 되는 방법
- 모던토킹 80년대 롤라장음악 '쉐리쉐리 레이디' 자작 공짜 벨소리 다운로드 해가삼!!
- MS-Windows 플랫폼의 Socket I/O Model 에는
- 솔직히 이 블로그스팟은,
- [강좌] MFC Ribbon Programming - MFC 리본 사용하기
- 블로그의 오른쪽 마우스 금지시킨거나 풀자!!
- 개떡같은 MS-VS++ 플랫폼 및 MFC DLL
- MS-Windows 에서도 Paint.Net 말고 더 좋은 김프를 쓰자! GTK와 GDK
- 무료소프트웨어
- 정적으로 MFC에 링크된 기본 DLL
- MFC 확장 DLL,정적 라이브러리로 링크는 안되는 것일까? -- 정답:안된다
- STATUS_DLL_NOT_FOUND with VS2008,VS200x
- 통합 메신저
- MFC정적으로 DLL 링크 + /MT 시 다음의 wincore.cpp 1475 line 에...
- MFC에 정적 또는 동적으로 링크하는 기본 DLL
- Download Visual Studio 2010(VS2010) Professional B...
- RedistributingVisualCppRunTimeLibrary
- 윈도 애플리케이션을 개발할 때 주로 쓰는 마이크로소프트(이하 MS)의 개발 도구들
- Microsoft Side-by-Side Horror Visual C++ 2008
- 파일만 잘 다뤄도 파워유저(?)
- Seoul City Hall and DeokSuGung
- 2008' 남해에 가려면 삼천포로 빠져야 한다!! 휴가지 남해일주,삼천포의 대교~여수
- URL Parse for SDK Function like AfxParseUrl
- 요즘세대도 이렇게 공부하려나? C언어 이야기
- 7zip plugin Api
- VC 2008 Feature Pack ::MFC 9.0 - 리본바 (Ribbonbar)
- WIN32 SDK FrameWork 라이브러리
- Visual Studio Technical Articles:: Boost for Visua...
- Visual C 에서 CRT와 MFC 라이브러리가 잘못된 순서로 링크되면 LNK2005
- 거꾸로 가는 MicroSoft™ 의 운영체제
- VC 에서 EXE크기 줄이면서 MFC90,MSVCRxx MSVCP DLL 포함 안하는 법
- My This blog moved from http://blog.hanafos.com/ye...
-
▼
6월
(44)
댓글 없음:
댓글 쓰기