Delphiで複数のファイルを単一のアーカイブに圧縮するにはどうすればよいですか
-
03-07-2019 - |
質問
Delphiを使用して複数のファイルを単一のアーカイブに圧縮する必要があります。私は非常に安いので、フリーウェアコンポーネントまたはオープンソースコンポーネントを使用したいと思います:-)
主な要件は次のとおりです。
- アーカイブを暗号化できます
- WinZipのコピーがあれば誰でも開くことができる一般的なアーカイブを作成できます
使用したコンポーネントに関する提案はありますか?商用コンポーネント/ライブラリと同様に無料で提案してください。
解決
おそらく DelphiZip は探しているもので、暗号化もサポートしているようで、WinZipです互換性があります。 LGPLでリリースされています。
他のヒント
KaZip は、オープンソースのZIPアーカイバーです。その説明は次のとおりです。
KAZIPは高速でシンプルなZIPアーカイバであり、 最も人気のあるZIPを使用するデアーカイバ format.Inflate-zipの圧縮 圧縮形式(暗号化なし サポートおよびマルチディスクなし サポート).KAZipは完全に基づいています Delphi VCL- DLL、ActiveX、その他なし 外部ライブラリ。KAZipは完全に ストリーム指向なので、対処できます 作成せずにメモリ内のデータのみ 一時ファイルなど。必要な場合 zip-unzip機能を追加します アプリケーション、KAZIPは正しい 溶液。追加のZipListViewおよび 簡単なZipTreeViewコンポーネント visualisation.Functionality:Zip-Unzip Inflate-DeflateBZip2解凍を使用する からのBZIP2ユニットのトラフ使用 Edison Mera Menndez機能:追加 ファイル、フォルダー、ストリーム;選択する、 選択解除、チェック、抽出 ファイルとストリーム;削除と名前変更 filesCreate、Delete、およびRename folderTest、Repair多くの新しいプロパティ および方法、改善された速度。非常に 複雑なZipブラウザデモアプリケーション 含まれています
まだDelphi 2009との互換性はありませんが、ソースコードに若干の変更を加えることで、Delphi 2009でも動作するようにできます。実際、それは私がやったことです。
よろしく
私は誰もまだJclCompressionに言及していないことに驚いています-それは有名なJedi Code Library(JCL)の一部です。 ユニット自体のビューは次のとおりです。 http://jcl.svn.sourceforge.net/viewvc/jcl/trunk/jcl/source/common/JclCompression.pas?view=markup
注、7-zip DLLバージョン4.64と互換性があります-新しいバージョンは後方互換性がない可能性があります...
ComponentAceの$ 69 ZipForge をお勧めします。
Pascalの7zip(LZMA)バインディングを使用できます(Delphiと互換性があります): http:// www.birtles.org.uk/programming/
参照する別のDelphiリソースは、 InnoSetup です。ソースコードが利用可能であり、少しの作業であなたがやろうとしていることのエッジアップを与えるかもしれません。 WinZipと互換性のある自己解凍zipアーカイブを作成するオプションがあります。
私の考えはプログラムを使用することではなく、彼のソースを非常に厳しくテストされ、非常に堅実であるため、出発点として使用することです。
infozips zip32およびunzip32 dllがあります。 Delphiから(Visual Basicからでも)使用できます。両方にインターフェイスユニット/モジュールがあります。インターフェースは私が望んでいたほど良くはありませんが、動作します。