圧縮ファイル形式用のオープンソース .NET API
一般的な圧縮ファイル形式を操作するためのオープン ソース .NET ライブラリ。
SharpCompressとは何ですか?
SharpCompress は、ソフトウェア開発者が RAR、7ZAP、ZIP、TAR、GZIP、BZIP2 などの一般的な圧縮ファイル形式で作業できるようにするオープン ソースの純粋な .NET ライブラリです。 7ZIP、ZIP/unzip、TAR/untar LZIP/unlzip、BZIP2/unbzip2、および GZIP/ungzip を、前方のみの読み取りとファイルのランダム アクセス API で解凍する機能を提供します。また、ZIP、TAR、BZIP2、および GZIP ファイル形式の書き込みサポートも実装されています。
SharpCompress ディレクトリ内のすべてのファイルからファイルへの zip アーカイブの作成、RAR ファイルからディレクトリへのすべてのファイルの抽出、ReaderFactory を使用したアーカイブ タイプの自動検出、エントリ ストリームのオープン、ReaderFactory を使用したアーカイブ タイプの自動検出、およびエントリーストリームなどを開きます
SharpCompress を使い始める
SharpCompress をインストールするには、.NET Framework 3.5 以降が必要です。 GitHub からリポジトリを手動でダウンロードできます。または、NuGet を使用できます。
ここにコマンドがあります
Install-Package sharpcompress -Version number
ZIP ファイルからファイルを圧縮および抽出する .NET ライブラリ
SharpCompress を使用すると、.NET 開発者は、フォルダーの内容を新しい ZIP ファイルに圧縮することにより、ZIP ファイルを作成できます。 ZIP ファイル形式は、最も広く使用されている圧縮およびアーカイブ ファイル形式の 1 つです。 1 つまたは複数のファイルのサイズを縮小するのに役立ち、複数のファイルとフォルダーを 1 つのファイルにアーカイブすることもできます。 API を使用すると、開発者は ZIP ファイルからファイルを抽出することもできます。抽出するファイルを指定するだけで、アーカイブ内のすべてのファイルを循環してディレクトリに保存します
RAR からすべてのファイルを抽出する - C#
// Read RAR file
RarArchive rarArchive = RarArchive.Open("fileformat.rar");
// Extract all data
foreach (var entry in rarArchive.Entries.Where(entry => !entry.IsDirectory))
{
entry.WriteToDirectory("\\filformat", new ExtractionOptions()
{
ExtractFullPath = true,
Overwrite = true
});
}
.NET を使用して既存の ZIP ファイルにファイルを追加する
SharpCompress ライブラリは、既存の ZIP ファイルにファイルを追加する機能をユーザーに提供します。まず、既存の ZIP ファイルに追加するファイルを選択する必要があります。 SharpCompress は最初に一時ファイルに保存し、完了したら一時ファイルを永続的な場所に移動できます。このようにして、既存の ZIP に追加すると、新しいファイルが圧縮されます。 3 つの簡単な手順を使用して、既存のファイルを zip アーカイブに追加できます
ファイルを既存の ZIP ファイルに追加する
- ZipArchive.Open() メソッドを使用して既存の ZIP ファイルを開き、ファイル名をパラメーターとして渡します
- AddAllFromDirectory() メソッドを使用してファイルを ZIP に追加し、ディレクトリ パスを添付ファイルとして渡します。
- SaveTo() メソッドを使用してファイルを保存し、出力パスを最初の引数として、CompressionType を 2 番目の引数として渡します
ファイルを既存の ZIP アーカイブに追加する - C#
// open existing ZIP file
ZipArchive archive = ZipArchive.Open("test.zip");
// add samples files in it
archive.AddAllFromDirectory("\\sample");
// save file
archive.SaveTo("sample.zip", CompressionType.Deflate);