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をこのように、7zipをを使用して、フォルダのセットを圧縮
- 3. 7Zipを使用してWARファイルを作成する
- 4. 7zipコマンドラインユーティリティを使用して暗号化された7zip archieveファイルを復号する
- 5. なぜ7zipを使用して1つ以上のファイルをgzipできない
- 6. コマンドプロンプトを使用して7zipファイル圧縮モードストアが機能していませんか?
- 7. 誰かがBing Map WebサービスをDelphiで使用していますか?
- 8. VSTのプログラミングには誰もDelphiを使用していますか?
- 9. vb.netで7zipコマンドを使用してファイルが圧縮されない
- 10. NTFS圧縮を使用して圧縮されたSQLバックアップを7zipにするのは悪いですか?
- 11. 7zip cmd lineアンダースコアを使ってファイル名を書きます
- 12. Delphi CGIを使用してファイルをアップロード
- 13. Delphi、ショートカットを使用しないTActionToolBar(Delphi XE)
- 14. 属性を使用しているDelphiでC#Webserviceを使用する
- 15. グラフィックファイルを使用してDelphiコンポーネントをスキンする方法はありますか?
- 16. Windows 64ビットでlibusbをDelphiで使用しますか?
- 17. DelphiはAndroid Jniラッパーからプロシージャを使用します
- 18. クロムを使用すると7zipへのハイパーリンクをダウンロードできません
- 19. Delphi-Mockフレームワークを使用してDelphiの子クラスでmockを使用する方法
- 20. パックバックする方法7zipをドキュメントによると7zipを
- 21. Delphi 10 Seattleを使用してWindows 10 Mobileアプリケーションを作成できますか?
- 22. winsock2とIOCPを使用してDelphi TClientSocketを置き換えますか?
- 23. 7ZIPとCMDを使用してZIPを実行して7日以上経過したファイルを削除する
- 24. カスタムファイル拡張子にTFileStreamを使用しているDelphi
- 25. Delphiを使用してSQL Serverストアドプロシージャのパラメータ名を渡す
- 26. プロジェクトの名前は、Delphi XE2を使用しているUnit Output Directory Optionで利用できますか?
- 27. ポップアップなしでファイルを削除するDelphiを使用して
- 28. Delphiはフォーム作成通知用のイベントハンドラを提供していますか?
- 29. 7zipコマンドラインアップデートコマンドが動作しない
- 30. Delphiを使用してoDataサービスの推奨事項を使用する
。それ以外の場合は、ピンチのビットです。 300メガバイトのジップを作ってから、その300メガバイトのジップを90個ジップしてTZipの別のジップに入れてみると面白い時間があります。 –