C#のZipファイルの圧縮と解凍(展開)のサンプルです。
確認環境 ・Microsoft Visual Studio Community 2019 |
目次
参照 | 参照の追加 |
サンプル | zipファイルに圧縮する(ZipFileクラス) |
zipファイルを解凍する(ZipFileクラス) |
参照の追加
Zipの圧縮と解凍で使用するZipFileクラスを使用する場合は、System.IO.Compression.FileSystemを参照します。
System.IO.Compression.FileSystemを選択します。
zipファイルに圧縮する(ZipFileクラス)
public static void CreateFromDirectory( string sourceDirectoryName, string destinationArchiveFileName, CompressionLevel compressionLevel, bool includeBaseDirectory, Encoding entryNameEncoding) |
指定したフォルダ配下にあるファイルすべてをzip化するサンプルです。
using System.IO.Compression;
class Test1
{
static void Main()
{
string startPath = @"d:\ZipTest1";
string zipPath = @"D:\test1\テスト.zip";
ZipFile.CreateFromDirectory(
startPath,
zipPath,
CompressionLevel.Optimal,
false,
System.Text.Encoding.GetEncoding("Shift_JIS"));
}
}
1行目は、System.IO.Compressionをインポートしています。必須です。
7行目は、zip化対象のフォルダで中にファイルがあるとします。ファイルは複数可です。
8行目は、zip化後のパスとファイル名です。
10行目は、ZipFileクラスのCreateFromDirectoryメソッドでzipを作成しています。
13行目は、圧縮のオプションです。Optimalは圧縮サイズを重視します。Fastestは速度を重視します。
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.compression.compressionlevel?view=netframework-4.8
14行目は、Falseにすると解凍後のフォルダ名は8行目のファイル名のテストです。Trueにすると7行目のZipTest1になります。
15行目は、解凍後のファイル名の文字コードの指定です。
zipファイルを解凍する(ZipFileクラス)
public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName); |
zipファイルを指定したフォルダ配下に解凍するサンプルです。
using System.IO.Compression;
class Test1
{
static void Main()
{
string zipPath = @"D:\test1\テスト.zip";
string extractPath = @"d:\ZipTest1";
ZipFile.ExtractToDirectory(zipPath, extractPath);
}
}
1行目は、System.IO.Compressionをインポートしています。必須です。
7行目は、zipファイルです。
8行目は、zip解凍後のパスです。
10行目は、ZipFileクラスのExtractToDirectoryメソッドでzipファイルを解凍しています。
解凍後のファイルサイズとファイル名に注意します。必要であればチェックを行います。
関連の記事