C# ZIPファイルを解凍する

  • 作成日 2021.09.30
  • 更新日 2022.04.09
  • C#
C# ZIPファイルを解凍する

C#で、ZIPファイルを解凍するサンプルコードを記述してます。

環境

  • OS windows10 pro 64bit
  • .net core 3.1
  • Microsoft Visual Studio Community 2019 Version 16.7.1

拡張メソッドを作成

ZIPファイルを解凍するには、「ExtractToDirectory」を使用します。

以下は、指定したZIPファイルを解凍だけのコードとなります。

「System.Text.Encoding.CodePages」は「nuget」で入手しておきます。

Install-Package System.Text.Encoding.CodePages

サンプルコード

using System;
using System.IO;
using System.IO.Compression;
using System.Text;

namespace testapp
{

    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                // 解凍するZIPファイル名
                string zipName = @"C:\テスト.zip";                
                // 解凍先
                string extraName = @"C:\zip";

                // Encoding.GetEncoding("sjis")を.net coreで使用するため
                Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

                // 解凍
                ZipFile.ExtractToDirectory(
                    zipName,
                    extraName,
                    Encoding.GetEncoding("sjis") // 文字化け対策
                );
            }
            catch (FileNotFoundException e)
            {
                System.Console.WriteLine("ファイルが存在しません");
            }
            catch (IOException e)
            {
                System.Console.WriteLine("すでにファイルが存在します");
            }
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            }
        }
    }
}

実行結果