Introduction:
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. |
|||
|
|||
3 comments :
very useful tnq :)
useful..thank you
Note: Only a member of this blog may post a comment.