1. ホーム
  2. c#

[解決済み] System.IO.Compression" ネームスペースに "ZipFile" クラスがありません。

2022-05-15 14:20:56

質問

System.IO.Compression のネームスペースで Zipfile クラスを使用することができません。

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

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string startPath = @"c:\example\start";
            string zipPath = @"c:\example\result.zip";
            string extractPath = @"c:\example\extract";

            ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest,true);

            ZipFile.ExtractToDirectory(zipPath, extractPath);
        }
    }
}

エラーは:

名前 'zipfile' は現在のコンテキストに存在しません。

どうすれば解決できますか?

どのように解決するのですか?

このために追加のリファレンスが必要です。最も便利な方法は、NuGet パッケージの System.IO.Compression.ZipFile

<!-- Version here correct at time of writing, but please check for latest -->
<PackageReference Include="System.IO.Compression.ZipFile" Version="4.3.0" />

NuGet を使用せずに .NET Framework で作業している場合、アセンブリに dll 参照を追加する必要があります ("System.IO.Compression.FileSystem.dll" - そして少なくとも .NET 4.5 (以前のフレームワークには存在しないため) を使用していることを確認すること。

詳細については、アセンブリと .NET のバージョンを見つけることができます。 を MSDN から入手できます。