''ZipArchiveEntry' does not contain the definition of 'ExtractToFile'
Using ASP.NET Framework 4.7.1, I am trying to compress a file but Visual Studio is showing that ZipArchiveEntry
does not contain the definition of ExtractToFile
.
This is my code:
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
if (file == null)
return View();
string path = Server.MapPath("~/App_Data/Uploads");
using(ZipArchive archive = new ZipArchive(file.InputStream))
{
foreach(ZipArchiveEntry entry in archive.Entries)
{
if(!string.IsNullOrEmpty(Path.GetExtension(entry.FullName)))
{
entry.ExtractToFile(Path.Combine(path, entry.FullName));
}
else
{
Directory.CreateDirectory(Path.Combine(path, entry.FullName));
}
}
}
}
Solution 1:[1]
Although most of the ZipArchive
functionality can be added by including a reference to System.IO.Compression
, to use the ExtractToFile
option you also need a reference to System.IO.Compression.FileSystem
.
It's not required to add it as a Using
statement, just the reference is enough.
Solution 2:[2]
The extension methods CreateEntryFromFile()
, ExtractToDirectory()
and ExtractToFile()
can be accessed after installing the package System.IO.Compression.ZipFile
by using the following command:
Install-Package System.IO.Compression.ZipFile -Version 4.3.0
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Hugo Delsing |
Solution 2 | Mohammed Osman |