Aspdotnet-Suresh

aspdotnet-suresh offers C#.net articles and tutorials,csharp dot net,asp.net articles and tutorials,VB.NET Articles,Gridview articles,code examples of asp.net 2.0 /3.5,AJAX,SQL Server Articles,examples of .net technologies

Extract Unzip Files in Zip Folder in Asp.net using C#, VB.NET

Apr 17, 2013
Introduction:

Here I will explain how to extract or unzip files in zip folder in asp.net using C#, VB.NET.

Description:

In previous articles I explained create zip files in asp.net, Delete files from uploaded folder in asp.net, create/delete directory in asp.net, Ajax ConfirmbuttonExtender example with modalpopup, Joins in SQL Server and many articles relating to Gridview, SQL ,jQuery,asp.net, C#,VB.NET. Now I will explain how to extract unzip files from zip folder in asp.net using C# and VB.NET.

To implement this first we need to get Ionic.Zip.dll from DotnetZIP Library for that check this link Ionic.Zip.dll or you can get it from attached downloadable code. Now you need to add that dll to your application bin folder for that check below steps

Go to Solution Explorer -à Right click on it and go to Add ASP.NET folder -à click on Bin

Now bin folder added to our application and place Ionic.Zip.dll in that folder and add another folder in your application (Right click on your application -à Select New folder) and give name as SampleFiles

Once you added dll and SampleFiles folder our application will be like this


Now write the following code to upload files and unzip files from zip folder


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Extract or Unzip files from Zip folder in Asp.net using c#,vb.net</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="fileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="Upload Files" onclick="btnUpload_Click" />
<asp:Button ID="btnZip" Text="Create Zip Files" runat="server" onclick="btnZip_Click" />
<asp:Button ID="btnUnZip" Text="Extract Zip Files" runat="server" onclick="btnunZip_Click" /><br />
<asp:Label ID="lbltxt" runat="server" Font-Bold="true" ForeColor="Red" />
</div>
<div>
<asp:GridView ID="gvDetails" CellPadding="5" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="FileName" HeaderText="FileName" />
<asp:BoundField DataField="CompressedSize" HeaderText="Compressed Size" />
<asp:BoundField DataField="UnCompressedSize" HeaderText="UnCompressed Size" />
</Columns>
<HeaderStyle BackColor="#df5015" Font-Bold="true" ForeColor="White" />
</asp:GridView>
</div>
</form>
</body>
</html>
Now in code behind add the following namespaces

C# Code


using System;
using System.IO;
using Ionic.Zip;
Once you add namespaces write the following code in code behind


// insert files in folder
protected void btnUpload_Click(object sender, EventArgs e)
{
if (fileUpload1.HasFile)
{
string filename = Path.GetFileName(fileUpload1.PostedFile.FileName);
string path = Server.MapPath("~/SampleFiles/" + filename);
fileUpload1.SaveAs(path);
lbltxt.Text = "File Uploaded Successfully";
}
}
// Zip all files from folder
protected void btnZip_Click(object sender, EventArgs e)
{
string path = Server.MapPath("~/SampleFiles/");
string[] filenames = Directory.GetFiles(path);
using (ZipFile zip = new ZipFile())
{
zip.AddFiles(filenames, "files");
zip.Save(Server.MapPath("~/samplefiles.zip"));
lbltxt.Text = "ZIP File Created Successfully";
}
}
// UnZip all files from folder
protected void btnunZip_Click(object sender, EventArgs e)
{
string path = Server.MapPath("~/SampleFiles.zip");
using (ZipFile zip = ZipFile.Read(path))
{
zip.ExtractAll(Server.MapPath("~/ExtractFiles"),ExtractExistingFileAction.DoNotOverwrite);
gvDetails.DataSource = zip;
gvDetails.DataBind();
lbltxt.Text = "Files Extracted Successfully and it contains following files";
}
}
VB.NET Code


Imports System.IO
Imports Ionic.Zip
Partial Class VBCode
Inherits System.Web.UI.Page
' insert files in folder
Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As EventArgs)
If fileUpload1.HasFile Then
Dim filename As String = Path.GetFileName(fileUpload1.PostedFile.FileName)
Dim path_1 As String = Server.MapPath("~/SampleFiles/" & filename)
fileUpload1.SaveAs(path_1)
lbltxt.Text = "File Uploaded Successfully"
End If
End Sub
' Zip all files from folder
Protected Sub btnZip_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim path As String = Server.MapPath("~/SampleFiles/")
Dim filenames As String() = Directory.GetFiles(path)
Using zip As New ZipFile()
zip.AddFiles(filenames, "files")
zip.Save(Server.MapPath("~/samplefiles.zip"))
lbltxt.Text = "ZIP File Created Successfully"
End Using
End Sub
' UnZip all files from folder
Protected Sub btnunZip_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim path As String = Server.MapPath("~/SampleFiles.zip")
Using zip As ZipFile = ZipFile.Read(path)
zip.ExtractAll(Server.MapPath("~/ExtractFiles"), ExtractExistingFileAction.DoNotOverwrite)
gvDetails.DataSource = zip
gvDetails.DataBind()
lbltxt.Text = "Files Extracted Successfully and it contains following files"
End Using
End Sub
End Class
Demo

To test application first upload files after that next click on create zip folder button after that click on Extract Zip Files button and check your directory for the files


Download Sample Code Attached



If you enjoyed this post, please support the blog below. It's FREE!

Get the latest Asp.net, C#.net, VB.NET, jQuery, Plugins & Code Snippets for FREE by subscribing to our Facebook, Twitter, RSS feed, or by email.

subscribe by rss Subscribe by RSS subscribe by email Subscribe by Email

3 comments :

Anonymous said...

Anonymous said...

very useful tnq :)

Anonymous said...

useful..thank you

Give your Valuable Comments

Note: Only a member of this blog may post a comment.

© 2015 Aspdotnet-Suresh.com. All Rights Reserved.
The content is copyrighted to Suresh Dasari and may not be reproduced on other websites without permission from the owner.