Delphiの7-Zip DLLを使用したいと思いますが、まともなドキュメントや例を見つけることができませんでした。誰もデルファイから7-Zip DLLを使用する方法を知っていますか?Delphiの7-Zipを使用していますか?
答えて
リリース1.102では、JEDI Code Libraryはユニットに組み込まれた7-Zipをサポートしています。しかし、まだそれを自分で使用していない。
zipとunzipにのみ7Zipを使用する場合は、TZipコンポーネントを参照してください。 私は自分自身の目的のために小さなラッパーを書いています。これはZipper.pasファイルにありますので、気軽に再利用してください。
JEDIコードライブラリの多くと同様に、オリバーギーゼンの答えを拡張し、私はまともなドキュメントを見つけることができませんでしたが、これは私の作品:
uses
JclCompression;
procedure TfrmSevenZipTest.Button1Click(Sender: TObject);
const
FILENAME = 'F:\temp\test.zip';
var
archiveclass: TJclDecompressArchiveClass;
archive: TJclDecompressArchive;
item: TJclCompressionItem;
s: String;
i: Integer;
begin
archiveclass := GetArchiveFormats.FindDecompressFormat(FILENAME);
if not Assigned(archiveclass) then
raise Exception.Create('Could not determine the Format of ' + FILENAME);
archive := archiveclass.Create(FILENAME);
try
if not (archive is TJclSevenZipDecompressArchive) then
raise Exception.Create('This format is not handled by 7z.dll');
archive.ListFiles;
s := Format('test.zip Item Count: %d'#13#10#13#10, [archive.ItemCount]);
for i := 0 to archive.ItemCount - 1 do
begin
item := archive.Items[i];
case item.Kind of
ikFile:
s := s + IntToStr(i+1) + ': ' + item.PackedName + #13#10;
ikDirectory:
s := s + IntToStr(i+1) + ': ' + item.PackedName + '\'#13#10;//'
end;
end;
if archive.ItemCount > 0 then
begin
// archive.Items[0].Selected := true;
// archive.ExtractSelected('F:\temp\test');
archive.ExtractAll('F:\temp\test');
end;
ShowMessage(s);
finally
archive.Free;
end;
end;
7ジッププラグインAPI
ジップと7Z、Synopseを試してみる: http://synopse.info/forum/viewtopic.php?pid=163
Synopseが7zipをサポートしているように見えません。ちょうどzipです。 – hikari
Delphiは今持っていますXE2でTZipFileとネイティブ、クロスプラットフォームのzipサポート:
How to extract zip files with TZipFile in Delphi XE2 and FireMonkey
私は多くのソリューションを試してみましたが、問題があった、これは働いていました。
ダウンロードhttps://github.com/zedalaye/d7zip 7z.dllとsevenzip.pasをプロジェクトdiroctoryにコピーし、プロジェクトにsevenzip.pasを追加します。
次にあなたが解凍し、これを使用することができます。
using sevenzip;
procedure Unzip7zFile (zipFullFname:string);
var
outDir:string;
begin
with CreateInArchive(CLSID_CFormat7z) do
begin
OpenFile(zipFullFname);
outDir := ChangeFileExt(zipFullFname, '');
ForceDirectories (outDir);
ExtractTo(outDir);
end;
end;
使用法:すべての圧縮されたオブジェクトがメモリに収まる場合は正常に動作しますTZip
Unzip7zFile(ExtractFilePath(Application.ExeName) + 'STR_SI_FULL_1000420.7z');
- 1. 7zipライブラリを使用して7zipファイルを作成するc#
- 2. 7Zipを使用してWARファイルを作成する
- 3. 7zipコマンドラインユーティリティを使用して暗号化された7zip archieveファイルを復号する
- 4. コマンドプロンプトを使用して7zipファイル圧縮モードストアが機能していませんか?
- 5. NTFS圧縮を使用して圧縮されたSQLバックアップを7zipにするのは悪いですか?
- 6. 誰かがBing Map WebサービスをDelphiで使用していますか?
- 7. VSTのプログラミングには誰もDelphiを使用していますか?
- 8. Delphi CGIを使用してファイルをアップロード
- 9. クロムを使用すると7zipへのハイパーリンクをダウンロードできません
- 10. グラフィックファイルを使用してDelphiコンポーネントをスキンする方法はありますか?
- 11. Windows 64ビットでlibusbをDelphiで使用しますか?
- 12. Delphi-Mockフレームワークを使用してDelphiの子クラスでmockを使用する方法
- 13. 自動化 - zip sasデータセットを読み込み、SASで7zip圧縮を使用して解凍して戻す
- 14. Delphi 10 Seattleを使用してWindows 10 Mobileアプリケーションを作成できますか?
- 15. winsock2とIOCPを使用してDelphi TClientSocketを置き換えますか?
- 16. 7zip ISO抽出
- 17. 7zipコンテナ形式
- 18. Java - Running 7zip
- 19. Delphiを使用してSQL Serverストアドプロシージャのパラメータ名を渡す
- 20. プロジェクトの名前は、Delphi XE2を使用しているUnit Output Directory Optionで利用できますか?
- 21. Delphiを使用してoDataサービスの推奨事項を使用する
- 22. Delphiはフォーム作成通知用のイベントハンドラを提供していますか?
- 23. Delphiで別のデバッガをインストールして使用するには?
- 24. Delphi:メインスレッドの外側にソケットを作成して使用する
- 25. DelphiのXMLバインディングウィザードでxsd:complexContentを使用できますか?
- 26. Delphi 2010を使用してログイン/パスワードダイアログを作成する方法
- 27. delphiを使用してExcelを展開する
- 28. Delphi IDEを使用してブレークポイントを保存するには?
- 29. Delphiを使用して圧縮(ZIP)フォルダを作成する
- 30. Delphi - Indy HTTP Clientを使用してサーバーに応答を返す
。それ以外の場合は、ピンチのビットです。 300メガバイトのジップを作ってから、その300メガバイトのジップを90個ジップしてTZipの別のジップに入れてみると面白い時間があります。 –