DotNetZipはそれを行うことができます。Managed C++ の使用に抵抗がない場合。
DotNetZip ドキュメントから、これはAES 暗号化 zip ファイルを作成するためのコードです。(抽出するコードは似ています)。
#include "stdafx.h"
using namespace System;
using namespace Ionic::Zip;
int main(array<System::String ^> ^args)
{
Console::WriteLine(L"Hello World");
ZipFile ^ zip;
try
{
zip = gcnew ZipFile();
zip->Password = "Harbinger";
zip->Encryption = EncryptionAlgorithm::WinZipAes128;
zip->AddEntry("Readme.txt", "This is the content for the Readme.txt entry.");
zip->Save("test.zip");
}
finally
{
zip->~ZipFile();
}
Console::WriteLine(L"Press <ENTER> to quit.");
Console::ReadLine();
return 0;
}
また、私は DotNetZip を書いたので、ある程度気に入っています。しかし、7z.exe を 100 回実行することの何が問題なのかわかりません。パフォーマンスが気になりますか?