Saya tidak dapat menggunakan kelas "Zipfile" di ruang nama "System.IO.Compression", kode saya adalah:
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);
}
}
}
kesalahannya adalah:
Nama 'zipfile' tidak ada dalam konteks saat ini
Bagaimana saya bisa mengatasinya?
Jawaban:
Anda membutuhkan referensi tambahan untuk ini; cara paling mudah untuk melakukannya adalah melalui paket NuGet System.IO.Compression.ZipFile
Jika Anda bekerja pada .NET Framework tanpa NuGet, Anda perlu menambahkan referensi dll ke rakitan, "System.IO.Compression.FileSystem.dll" - dan pastikan Anda menggunakan setidaknya .NET 4.5 (karena tidak ada di kerangka sebelumnya).
Untuk info, Anda dapat menemukan rakitan dan versi .NET dari MSDN
sumber
FileSystem
referensi. HanyaSystem.IO.Compression
. Terima kasih. Aneh bahwa itu membutuhkan file yang tidak ada di namespace kelas. Ini adalah penyimpangan yang aneh dari konvensi.Bagi mereka yang merupakan programmer hijau di .NET, untuk menambahkan referensi DLL seperti yang dicatat oleh MarcGravell , Anda mengikuti langkah-langkah berikut:
Untuk menambahkan referensi dalam Visual C #
Dari Artikel MSDN, Cara: Menambah atau Menghapus Referensi Dengan Menggunakan Kotak Dialog Tambah Referensi .
sumber
Anda dapat menggunakan paket eksternal jika Anda tidak dapat meningkatkan ke 4.5. Salah satunya adalah Ionic.Zip.dll dari DotNetZipLib.
Anda dapat mengunduhnya di sini, gratis. http://dotnetzip.codeplex.com/
sumber
Cukup buka Referensi dan tambahkan "System.IO.Compression.FileSystem".
sumber
Solusi yang membantu saya: Buka Alat> NuGet Package Manager> Kelola Paket NuGet untuk Solusi ...> Jelajahi> Cari System.IO.Compression.ZipFile dan instal
sumber
Saya tahu ini adalah utas lama, tetapi saya tidak bisa menghindari memposting beberapa info berguna tentang ini. Saya melihat pertanyaan Zip sering muncul dan ini menjawab hampir semua pertanyaan umum.
Untuk mengatasi masalah kerangka kerja menggunakan 4.5 + ... Mereka adalah kelas ZipStorer yang dibuat oleh jaime-olivares: https://github.com/jaime-olivares/zipstorer , dia juga telah menambahkan contoh bagaimana menggunakan kelas ini sebagai baik dan juga menambahkan contoh bagaimana mencari nama file tertentu juga.
Dan untuk referensi tentang cara menggunakan ini dan melakukan iterasi untuk ekstensi file tertentu sebagai contoh, Anda dapat melakukan ini:
sumber
System.IO.Compression
sekarang tersedia sebagai paket nuget yang dikelola oleh Microsoft.Untuk menggunakan
ZipFile
Anda perlu mengunduhSystem.IO.Compression.ZipFile
paket nuget .sumber
Tambahkan System.IO.Compression.ZipFile sebagai referensi nuget yang berfungsi
sumber
Di explorer solusi, klik kanan Referensi, lalu klik untuk memperluas rakitan, temukan System.IO.Compression.FileSystem dan pastikan sudah dicentang. Kemudian Anda dapat menggunakannya di kelas Anda -
using System.IO.Compression;
Tambahkan Screenshot Majelis Referensi
sumber
Masalahnya di sini adalah bahwa Anda baru saja menambahkan referensi ke System.IO.Compression, referensi ke System.IO.Compression.Filesystem.dll tidak ada
Dan Anda perlu melakukannya di .net 4.5 atau yang lebih baru (karena tidak ada di versi yang lebih lama).
Saya baru saja memposting skrip di TechNet Mungkin seseorang akan menganggapnya berguna karena membutuhkan .net 4.5 atau 4.7
https://gallery.technet.microsoft.com/scriptcenter/Create-a-Zip-file-from-a-b23a7530
sumber