For zipping try this using shareZiplib:
protected void Btn_Upload_Click(object sender, EventArgs e)
{
string folder = Server.MapPath("~/Files/");
string filePath = FileUpload1.PostedFile.FileName;
string fileName = System.IO.Path.GetFileName(filePath);
FileUpload1.PostedFile.SaveAs(folder + fileName);
// Unzip the file
UnzipFile(filePath, folder);
}
//After the folder has been transfered to the folder you can use the following code to unzip it.
private void UnzipFile(string zipFilePath, string folder)
{
ZipInputStream s = new ZipInputStream(File.OpenRead(zipFilePath));
ZipEntry theEntry;
while ((theEntry = s.GetNextEntry()) != null)
{
string directoryName = Path.GetDirectoryName(theEntry.Name);
string fileName = Path.GetFileName(theEntry.Name);
string serverFolder = Server.MapPath("~/Files/");
// create directory
Directory.CreateDirectory(serverFolder + directoryName);
if (fileName != String.Empty)
{
FileStream streamWriter = File.Create((serverFolder + theEntry.Name));
int size = 2048;
byte[] data = new byte[2048];
while (true)
{
size = s.Read(data, 0, data.Length);
if (size > 0)
{
streamWriter.Write(data, 0, size);
}
else
{
break;
}
}
streamWriter.Close();
}
}
s.Close();
}
download the sharezip lib from :
<http://www.sharpziplib.com/>