116

名前空間「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」は現在のコンテキストに存在しません

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

4

10 に答える 10

228

これには追加の参照が必要です。これを行う最も便利な方法は、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 を使用していることを確認してください。以前のフレームワークに存在します)。

情報については、MSDN からアセンブリと .NET バージョンを見つけることができます

于 2013-03-06T08:01:31.107 に答える
18

4.5 にアップグレードできない場合は、外部パッケージを使用できます。そのようなものの 1 つは、DotNetZipLib の Ionic.Zip.dll です。

using Ionic.Zip;

ここからダウンロードできます。無料です。http://dotnetzip.codeplex.com/

于 2013-07-18T10:02:21.863 に答える
12

参照に移動して、「System.IO.Compression.FileSystem」を追加してください。

于 2016-07-18T14:39:23.680 に答える